diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadWSStatusTask.java b/src/com/szpg/task/ReadWSStatusTask.java index bfa6809..4328426 100644 --- a/src/com/szpg/task/ReadWSStatusTask.java +++ b/src/com/szpg/task/ReadWSStatusTask.java @@ -1,47 +1,51 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadWSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadWSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadWSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadWSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadWSStatusTask.java b/src/com/szpg/task/ReadWSStatusTask.java index bfa6809..4328426 100644 --- a/src/com/szpg/task/ReadWSStatusTask.java +++ b/src/com/szpg/task/ReadWSStatusTask.java @@ -1,47 +1,51 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadWSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadWSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadWSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadWSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadWSValueTask.java b/src/com/szpg/task/ReadWSValueTask.java index a354e7a..3109c56 100644 --- a/src/com/szpg/task/ReadWSValueTask.java +++ b/src/com/szpg/task/ReadWSValueTask.java @@ -1,50 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadWSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadWSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadWSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadWSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadWSStatusTask.java b/src/com/szpg/task/ReadWSStatusTask.java index bfa6809..4328426 100644 --- a/src/com/szpg/task/ReadWSStatusTask.java +++ b/src/com/szpg/task/ReadWSStatusTask.java @@ -1,47 +1,51 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadWSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadWSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadWSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadWSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadWSValueTask.java b/src/com/szpg/task/ReadWSValueTask.java index a354e7a..3109c56 100644 --- a/src/com/szpg/task/ReadWSValueTask.java +++ b/src/com/szpg/task/ReadWSValueTask.java @@ -1,50 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadWSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadWSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadWSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadWSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/util/HttpRequest.java b/src/com/szpg/util/HttpRequest.java new file mode 100644 index 0000000..3f86904 --- /dev/null +++ b/src/com/szpg/util/HttpRequest.java @@ -0,0 +1,162 @@ +package com.szpg.util; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; + +public class HttpRequest { + /** + * 向指定URL发送GET方法的请求 + * + * @param url 发送请求的URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输出流、输入流 + finally { + try { + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + return result; + } + + public static String sendPostByHttp(String url, String param) { + String result = ""; + try { + // 建立连接 + URL realUrl = new URL(url); + HttpURLConnection httpConn = (HttpURLConnection) realUrl.openConnection(); + // 设置参数 + httpConn.setDoOutput(true); // 需要输出 + httpConn.setDoInput(true); // 需要输入 + httpConn.setUseCaches(false); // 不允许缓存 + httpConn.setRequestMethod("POST"); // 设置POST方式连接 + // 设置请求属性 + httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); + httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 + httpConn.setRequestProperty("Charset", "UTF-8"); + + // 连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect + httpConn.connect(); + // 建立输入流,向指向的URL传入参数 + DataOutputStream dos = new DataOutputStream(httpConn.getOutputStream()); + dos.write(param.getBytes("UTF-8")); + dos.flush(); + dos.close(); + + // 获得响应状态 + int resultCode = httpConn.getResponseCode(); + if (HttpURLConnection.HTTP_OK == resultCode) { + StringBuffer sb = new StringBuffer(); + String readLine = new String(); + BufferedReader responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8")); + while ((readLine = responseReader.readLine()) != null) { + sb.append(readLine).append("\n"); + } + responseReader.close(); + result = sb.toString(); + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + + return result; + } +} diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadWSStatusTask.java b/src/com/szpg/task/ReadWSStatusTask.java index bfa6809..4328426 100644 --- a/src/com/szpg/task/ReadWSStatusTask.java +++ b/src/com/szpg/task/ReadWSStatusTask.java @@ -1,47 +1,51 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadWSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadWSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadWSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadWSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadWSValueTask.java b/src/com/szpg/task/ReadWSValueTask.java index a354e7a..3109c56 100644 --- a/src/com/szpg/task/ReadWSValueTask.java +++ b/src/com/szpg/task/ReadWSValueTask.java @@ -1,50 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadWSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadWSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadWSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadWSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/util/HttpRequest.java b/src/com/szpg/util/HttpRequest.java new file mode 100644 index 0000000..3f86904 --- /dev/null +++ b/src/com/szpg/util/HttpRequest.java @@ -0,0 +1,162 @@ +package com.szpg.util; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; + +public class HttpRequest { + /** + * 向指定URL发送GET方法的请求 + * + * @param url 发送请求的URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输出流、输入流 + finally { + try { + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + return result; + } + + public static String sendPostByHttp(String url, String param) { + String result = ""; + try { + // 建立连接 + URL realUrl = new URL(url); + HttpURLConnection httpConn = (HttpURLConnection) realUrl.openConnection(); + // 设置参数 + httpConn.setDoOutput(true); // 需要输出 + httpConn.setDoInput(true); // 需要输入 + httpConn.setUseCaches(false); // 不允许缓存 + httpConn.setRequestMethod("POST"); // 设置POST方式连接 + // 设置请求属性 + httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); + httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 + httpConn.setRequestProperty("Charset", "UTF-8"); + + // 连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect + httpConn.connect(); + // 建立输入流,向指向的URL传入参数 + DataOutputStream dos = new DataOutputStream(httpConn.getOutputStream()); + dos.write(param.getBytes("UTF-8")); + dos.flush(); + dos.close(); + + // 获得响应状态 + int resultCode = httpConn.getResponseCode(); + if (HttpURLConnection.HTTP_OK == resultCode) { + StringBuffer sb = new StringBuffer(); + String readLine = new String(); + BufferedReader responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8")); + while ((readLine = responseReader.readLine()) != null) { + sb.append(readLine).append("\n"); + } + responseReader.close(); + result = sb.toString(); + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + + return result; + } +} diff --git a/src/struts.xml b/src/struts.xml new file mode 100644 index 0000000..699bbda --- /dev/null +++ b/src/struts.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/WebRoot/WEB-INF/web.xml b/WebRoot/WEB-INF/web.xml index 2464a60..fbe1874 100644 --- a/WebRoot/WEB-INF/web.xml +++ b/WebRoot/WEB-INF/web.xml @@ -1,48 +1,42 @@ - - - PGDSC - - index.html - index.htm - index.jsp - - - - - struts2 - org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter - - - struts2 - *.action - - - struts2 - *.jsp - - - - - encodingFilter - org.springframework.web.filter.CharacterEncodingFilter - - encoding - UTF-8 - - - forceEncoding - true - - - - encodingFilter - /* - - - - - pgdscServlet - com.szpg.plc.PGDSCServlet - 1 - + + + PGDSC + + index.html + index.htm + index.jsp + + + struts2 + org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter + + + struts2 + *.action + + + struts2 + *.jsp + + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + encodingFilter + /* + + + pgdscServlet + com.szpg.plc.PGDSCServlet + 1 + \ No newline at end of file diff --git a/WebRoot/index.jsp b/WebRoot/index.jsp new file mode 100644 index 0000000..af52bf9 --- /dev/null +++ b/WebRoot/index.jsp @@ -0,0 +1,19 @@ +<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> +<% + String path = request.getContextPath(); + String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; +%> + + + + + + + 苏州太湖新城综合管廊信息支撑平台 + + + + + This is my JSP page.
+ + diff --git a/src/ACUBL.properties b/src/ACUBL.properties index fc3cb09..8d5f44a 100644 --- a/src/ACUBL.properties +++ b/src/ACUBL.properties @@ -1,143 +1,2017 @@ -#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 - -######## YXL.ACU001 ######## -#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CH.COUNT = 6 -#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CH.ZC.LIST = YXL.ACU001.DCH01;YXL.ACU001.DCH02;YXL.ACU001.SCH01;YXL.ACU001.SCH02;YXL.ACU001.RCH01;YXL.ACU001.RCH02 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CH.START = 300 -#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CH.WORDCOUNT = 24 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CHALM.START = 26 -#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.CHALM.WORDCOUNT = 1 - - -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.CO.COUNT = 6 -#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.CO.ZC.LIST = YXL.ACU001.DCO01;YXL.ACU001.DCO02;YXL.ACU001.SCO01;YXL.ACU001.SCO02;YXL.ACU001.RCO01;YXL.ACU001.RCO02 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.CO.START = 550 -#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.CO.WORDCOUNT = 24 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.COALM.START = 36 -#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.COALM.WORDCOUNT = 1 - - -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.WS.COUNT = 6 -#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.WS.ZC.LIST = YXL.ACU001.DWS01;YXL.ACU001.DWS02;YXL.ACU001.SWS01;YXL.ACU001.SWS02;YXL.ACU001.RWS01;YXL.ACU001.RWS02 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WS.START = 400 -#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 -YXL.ACU001.WS.WORDCOUNT = 74 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.WSALM.START = 30 -#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.WSALM.WORDCOUNT = 3 - - -#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YQ.COUNT = 6 -#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YQ.ZC.LIST = YXL.ACU001.DYQ01;YXL.ACU001.DYQ02;YXL.ACU001.SYQ01;YXL.ACU001.SYQ02;YXL.ACU001.RYQ01;YXL.ACU001.RYQ02 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQ.START = 500 -#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQ.WORDCOUNT = 24 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YQALM.START = 34 -#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YQALM.WORDCOUNT = 1 - - -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.HS.COUNT = 6 -#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.HS.ZC.LIST = YXL.ACU001.DHS01;YXL.ACU001.DHS02;YXL.ACU001.SHS01;YXL.ACU001.SHS02;YXL.ACU001.RHS01;YXL.ACU001.RHS02 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HS.START = 350 -#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 -YXL.ACU001.HS.WORDCOUNT = 24 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.HSALM.START = 28 -#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.HSALM.WORDCOUNT = 1 - - -#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.YW.COUNT = 2 -#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.YW.ZC.LIST = YXL.ACU001.SYW01;YXL.ACU001.RYW01 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.YWALM.START = 25 -#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.YWALM.WORDCOUNT = 1 - - -#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf -YXL.ACU001.DS.COUNT = 15 -#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 -YXL.ACU001.DS.ZC.LIST = YXL.ACU001.DIR01;YXL.ACU001.DIR02;YXL.ACU001.DIR03;YXL.ACU001.DIR04;YXL.ACU001.DIR05;YXL.ACU001.SIR01;YXL.ACU001.SIR02;YXL.ACU001.SIR03;YXL.ACU001.SIR04;YXL.ACU001.SIR05;YXL.ACU001.RIR01;YXL.ACU001.RIR02;YXL.ACU001.RIR03;YXL.ACU001.RIR04;YXL.ACU001.RIR05 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.DSALM.START = 38 -#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.DSALM.WORDCOUNT = 3 - - -#\u98ce\u673a\u6570\u91cf -YXL.ACU001.FJ.COUNT = 9 -#\u98ce\u673a\u7f16\u7801\u5217\u8868 -YXL.ACU001.FJ.ZC.LIST = YXL.ACU001.DFJ01;YXL.ACU001.DFJ02;YXL.ACU001.DFJ03;YXL.ACU001.SFJ01;YXL.ACU001.SFJ02;YXL.ACU001.SFJ03;YXL.ACU001.RFJ01;YXL.ACU001.RFJ02;YXL.ACU001.RFJ03 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJSTAT.START = 16 -#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJSTAT.WORDCOUNT = 5 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.FJRT.START = 200 -#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.FJRT.WORDCOUNT = 48 - - -#\u6c34\u6cf5\u6570\u91cf -YXL.ACU001.SB.COUNT = 19 -#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 -YXL.ACU001.SB.ZC.LIST = YXL.ACU001.DSB01;YXL.ACU001.DSB02;YXL.ACU001.DSB03;YXL.ACU001.DSB04;YXL.ACU001.DSB05;YXL.ACU001.DSB06;YXL.ACU001.SSB01;YXL.ACU001.SSB02;YXL.ACU001.SSB03;YXL.ACU001.SSB04;YXL.ACU001.SSB05;YXL.ACU001.SSB06;YXL.ACU001.RSB01;YXL.ACU001.RSB02;YXL.ACU001.RSB03;YXL.ACU001.RSB04;YXL.ACU001.RSB05;YXL.ACU001.RSB06;YXL.ACU001.RSB07 -#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBSTAT.START = 5 -#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBSTAT.WORDCOUNT = 8 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.SBRT.START = 100 -#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.SBRT.WORDCOUNT = 88 - - -#\u7167\u660e\u6570\u91cf -YXL.ACU001.ZM.COUNT = 3 -#\u7167\u660e\u7f16\u7801\u5217\u8868 -YXL.ACU001.ZM.ZC.LIST = YXL.ACU001.RZM01;YXL.ACU001.RZM02;YXL.ACU001.RZM03 -#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMSTAT.START = 2 -#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMSTAT.WORDCOUNT = 1 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 -YXL.ACU001.ZMRT.START = 70 -#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 -YXL.ACU001.ZMRT.WORDCOUNT = 16 - - -#\u4e95\u76d6\u6570\u91cf -YXL.ACU001.JG.COUNT = 4 -#\u4e95\u76d6\u7f16\u7801\u5217\u8868 -YXL.ACU001.JG.ZC.LIST = YXL.ACU001.DJG01;YXL.ACU001.RJG01;YXL.ACU001.RJG02;YXL.ACU001.RJG03 -#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 -YXL.ACU001.JGSTAT.START = 3 -#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 -YXL.ACU001.JGSTAT.WORDCOUNT = 1 \ No newline at end of file +#ACU\u53d8\u91cf\u8868\u914d\u7f6e\u6587\u4ef6 + +######## THXC.ACU001 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CH.ZC.LIST = THXC.ACU001.X.DCH01;THXC.ACU001.X.DCH02;THXC.ACU001.X.SCH01;THXC.ACU001.X.SCH02;THXC.ACU001.X.RCH01;THXC.ACU001.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.CO.ZC.LIST = THXC.ACU001.J.DCO01;THXC.ACU001.J.DCO02;THXC.ACU001.J.SCO01;THXC.ACU001.J.SCO02;THXC.ACU001.J.RCO01;THXC.ACU001.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.WS.ZC.LIST = THXC.ACU001.J.DWS01;THXC.ACU001.J.DWS02;THXC.ACU001.J.SWS01;THXC.ACU001.J.SWS02;THXC.ACU001.J.RWS01;THXC.ACU001.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU001.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YQ.ZC.LIST = THXC.ACU001.J.DYQ01;THXC.ACU001.J.DYQ02;THXC.ACU001.J.SYQ01;THXC.ACU001.J.SYQ02;THXC.ACU001.J.RYQ01;THXC.ACU001.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.HS.ZC.LIST = THXC.ACU001.J.DHS01;THXC.ACU001.J.DHS02;THXC.ACU001.J.SHS01;THXC.ACU001.J.SHS02;THXC.ACU001.J.RHS01;THXC.ACU001.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU001.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.YW.ZC.LIST = THXC.ACU001.J.SYW01;THXC.ACU001.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU001.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU001.DS.ZC.LIST = THXC.ACU001.J.DIR01;THXC.ACU001.J.DIR02;THXC.ACU001.J.DIR03;THXC.ACU001.J.DIR04;THXC.ACU001.J.DIR05;THXC.ACU001.J.SIR01;THXC.ACU001.J.SIR02;THXC.ACU001.J.SIR03;THXC.ACU001.J.SIR04;THXC.ACU001.J.SIR05;THXC.ACU001.J.RIR01;THXC.ACU001.J.RIR02;THXC.ACU001.J.RIR03;THXC.ACU001.J.RIR04;THXC.ACU001.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU001.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU001.FJ.ZC.LIST = THXC.ACU001.F.DFJ01;THXC.ACU001.F.DFJ02;THXC.ACU001.F.DFJ03;THXC.ACU001.F.SFJ01;THXC.ACU001.F.SFJ02;THXC.ACU001.F.SFJ03;THXC.ACU001.F.RFJ01;THXC.ACU001.F.RFJ02;THXC.ACU001.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU001.SB.COUNT = 19 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU001.SB.ZC.LIST = THXC.ACU001.P.DSB01;THXC.ACU001.P.DSB02;THXC.ACU001.P.DSB03;THXC.ACU001.P.DSB04;THXC.ACU001.P.DSB05;THXC.ACU001.P.DSB06;THXC.ACU001.P.SSB01;THXC.ACU001.P.SSB02;THXC.ACU001.P.SSB03;THXC.ACU001.P.SSB04;THXC.ACU001.P.SSB05;THXC.ACU001.P.SSB06;THXC.ACU001.P.RSB01;THXC.ACU001.P.RSB02;THXC.ACU001.P.RSB03;THXC.ACU001.P.RSB04;THXC.ACU001.P.RSB05;THXC.ACU001.P.RSB06;THXC.ACU001.P.RSB07 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBSTAT.WORDCOUNT = 8 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.SBRT.WORDCOUNT = 88 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU001.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU001.ZM.ZC.LIST = THXC.ACU001.Z.RZM01;THXC.ACU001.Z.RZM02;THXC.ACU001.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU001.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU001.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU001.JG.COUNT = 4 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU001.JG.ZC.LIST = THXC.ACU001.J.DJG01;THXC.ACU001.J.RJG01;THXC.ACU001.J.RJG02;THXC.ACU001.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU001.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU001.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU002 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CH.ZC.LIST = THXC.ACU002.X.DCH01;THXC.ACU002.X.DCH02;THXC.ACU002.X.SCH01;THXC.ACU002.X.SCH02;THXC.ACU002.X.RCH01;THXC.ACU002.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.CO.ZC.LIST = THXC.ACU002.J.DCO01;THXC.ACU002.J.DCO02;THXC.ACU002.J.SCO01;THXC.ACU002.J.SCO02;THXC.ACU002.J.RCO01;THXC.ACU002.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.WS.ZC.LIST = THXC.ACU002.J.DWS01;THXC.ACU002.J.DWS02;THXC.ACU002.J.SWS01;THXC.ACU002.J.SWS02;THXC.ACU002.J.RWS01;THXC.ACU002.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU002.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YQ.ZC.LIST = THXC.ACU002.J.DYQ01;THXC.ACU002.J.DYQ02;THXC.ACU002.J.SYQ01;THXC.ACU002.J.SYQ02;THXC.ACU002.J.RYQ01;THXC.ACU002.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.HS.ZC.LIST = THXC.ACU002.J.DHS01;THXC.ACU002.J.DHS02;THXC.ACU002.J.SHS01;THXC.ACU002.J.SHS02;THXC.ACU002.J.RHS01;THXC.ACU002.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU002.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.YW.ZC.LIST = THXC.ACU002.J.SYW01;THXC.ACU002.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU002.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU002.DS.ZC.LIST = THXC.ACU002.J.DIR01;THXC.ACU002.J.DIR02;THXC.ACU002.J.DIR03;THXC.ACU002.J.SIR01;THXC.ACU002.J.SIR02;THXC.ACU002.J.SIR03;THXC.ACU002.J.RIR01;THXC.ACU002.J.RIR02;THXC.ACU002.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU002.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU002.FJ.ZC.LIST = THXC.ACU002.F.DFJ01;THXC.ACU002.F.DFJ02;THXC.ACU002.F.SFJ01;THXC.ACU002.F.SFJ02;THXC.ACU002.F.RFJ01;THXC.ACU002.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU002.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU002.SB.ZC.LIST = THXC.ACU002.P.DSB01;THXC.ACU002.P.DSB02;THXC.ACU002.P.DSB03;THXC.ACU002.P.DSB04;THXC.ACU002.P.SSB01;THXC.ACU002.P.SSB02;THXC.ACU002.P.SSB03;THXC.ACU002.P.SSB04;THXC.ACU002.P.RSB01;THXC.ACU002.P.RSB02;THXC.ACU002.P.RSB03;THXC.ACU002.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU002.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU002.JG.ZC.LIST = THXC.ACU002.J.RJG01;THXC.ACU002.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU002.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU002.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU003 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CH.ZC.LIST = THXC.ACU003.X.DCH01;THXC.ACU003.X.DCH02;THXC.ACU003.X.SCH01;THXC.ACU003.X.SCH02;THXC.ACU003.X.RCH01;THXC.ACU003.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.CO.ZC.LIST = THXC.ACU003.J.DCO01;THXC.ACU003.J.DCO02;THXC.ACU003.J.SCO01;THXC.ACU003.J.SCO02;THXC.ACU003.J.RCO01;THXC.ACU003.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.WS.ZC.LIST = THXC.ACU003.J.DWS01;THXC.ACU003.J.DWS02;THXC.ACU003.J.SWS01;THXC.ACU003.J.SWS02;THXC.ACU003.J.RWS01;THXC.ACU003.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU003.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YQ.ZC.LIST = THXC.ACU003.J.DYQ01;THXC.ACU003.J.DYQ02;THXC.ACU003.J.SYQ01;THXC.ACU003.J.SYQ02;THXC.ACU003.J.RYQ01;THXC.ACU003.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.HS.ZC.LIST = THXC.ACU003.J.DHS01;THXC.ACU003.J.DHS02;THXC.ACU003.J.SHS01;THXC.ACU003.J.SHS02;THXC.ACU003.J.RHS01;THXC.ACU003.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU003.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.YW.ZC.LIST = THXC.ACU003.J.SYW01;THXC.ACU003.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU003.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU003.DS.ZC.LIST = THXC.ACU003.J.DIR01;THXC.ACU003.J.DIR02;THXC.ACU003.J.DIR03;THXC.ACU003.J.SIR01;THXC.ACU003.J.SIR02;THXC.ACU003.J.SIR03;THXC.ACU003.J.RIR01;THXC.ACU003.J.RIR02;THXC.ACU003.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU003.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU003.FJ.ZC.LIST = THXC.ACU003.F.DFJ01;THXC.ACU003.F.DFJ02;THXC.ACU003.F.SFJ01;THXC.ACU003.F.SFJ02;THXC.ACU003.F.RFJ01;THXC.ACU003.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU003.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU003.SB.ZC.LIST = THXC.ACU003.P.DSB01;THXC.ACU003.P.DSB02;THXC.ACU003.P.DSB03;THXC.ACU003.P.DSB04;THXC.ACU003.P.SSB01;THXC.ACU003.P.SSB02;THXC.ACU003.P.SSB03;THXC.ACU003.P.SSB04;THXC.ACU003.P.RSB01;THXC.ACU003.P.RSB02;THXC.ACU003.P.RSB03;THXC.ACU003.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU003.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU003.SBRT.WORDCOUNT = 66 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU003.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU003.JG.ZC.LIST = THXC.ACU003.J.RJG01;THXC.ACU003.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU003.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU003.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU004 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CH.ZC.LIST = THXC.ACU004.X.DCH01;THXC.ACU004.X.DCH02;THXC.ACU004.X.SCH01;THXC.ACU004.X.SCH02;THXC.ACU004.X.RCH01;THXC.ACU004.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.CO.ZC.LIST = THXC.ACU004.J.DCO01;THXC.ACU004.J.DCO02;THXC.ACU004.J.SCO01;THXC.ACU004.J.SCO02;THXC.ACU004.J.RCO01;THXC.ACU004.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.WS.ZC.LIST = THXC.ACU004.J.DWS01;THXC.ACU004.J.DWS02;THXC.ACU004.J.SWS01;THXC.ACU004.J.SWS02;THXC.ACU004.J.RWS01;THXC.ACU004.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU004.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YQ.ZC.LIST = THXC.ACU004.J.DYQ01;THXC.ACU004.J.DYQ02;THXC.ACU004.J.SYQ01;THXC.ACU004.J.SYQ02;THXC.ACU004.J.RYQ01;THXC.ACU004.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.HS.ZC.LIST = THXC.ACU004.J.DHS01;THXC.ACU004.J.DHS02;THXC.ACU004.J.SHS01;THXC.ACU004.J.SHS02;THXC.ACU004.J.RHS01;THXC.ACU004.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU004.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.YW.ZC.LIST = THXC.ACU004.J.SYW01;THXC.ACU004.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU004.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU004.DS.ZC.LIST = THXC.ACU004.J.DIR01;THXC.ACU004.J.DIR02;THXC.ACU004.J.DIR03;THXC.ACU004.J.SIR01;THXC.ACU004.J.SIR02;THXC.ACU004.J.SIR03;THXC.ACU004.J.RIR01;THXC.ACU004.J.RIR02;THXC.ACU004.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU004.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU004.FJ.ZC.LIST = THXC.ACU004.F.DFJ01;THXC.ACU004.F.DFJ02;THXC.ACU004.F.SFJ01;THXC.ACU004.F.SFJ02;THXC.ACU004.F.RFJ01;THXC.ACU004.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU004.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU004.SB.ZC.LIST = THXC.ACU004.P.DSB01;THXC.ACU004.P.DSB02;THXC.ACU004.P.DSB03;THXC.ACU004.P.SSB01;THXC.ACU004.P.SSB02;THXC.ACU004.P.SSB03;THXC.ACU004.P.RSB01;THXC.ACU004.P.RSB02;THXC.ACU004.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU004.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU004.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU004.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU004.JG.ZC.LIST = THXC.ACU004.J.RJG01;THXC.ACU004.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU004.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU004.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU005 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CH.ZC.LIST = THXC.ACU005.X.DCH01;THXC.ACU005.X.DCH02;THXC.ACU005.X.SCH01;THXC.ACU005.X.SCH02;THXC.ACU005.X.RCH01;THXC.ACU005.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.CO.ZC.LIST = THXC.ACU005.J.DCO01;THXC.ACU005.J.DCO02;THXC.ACU005.J.SCO01;THXC.ACU005.J.SCO02;THXC.ACU005.J.RCO01;THXC.ACU005.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.WS.ZC.LIST = THXC.ACU005.J.DWS01;THXC.ACU005.J.DWS02;THXC.ACU005.J.SWS01;THXC.ACU005.J.SWS02;THXC.ACU005.J.RWS01;THXC.ACU005.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU005.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YQ.ZC.LIST = THXC.ACU005.J.DYQ01;THXC.ACU005.J.DYQ02;THXC.ACU005.J.SYQ01;THXC.ACU005.J.SYQ02;THXC.ACU005.J.RYQ01;THXC.ACU005.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.HS.ZC.LIST = THXC.ACU005.J.DHS01;THXC.ACU005.J.DHS02;THXC.ACU005.J.SHS01;THXC.ACU005.J.SHS02;THXC.ACU005.J.RHS01;THXC.ACU005.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU005.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.YW.ZC.LIST = THXC.ACU005.J.SYW01;THXC.ACU005.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU005.DS.COUNT = 9 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU005.DS.ZC.LIST = THXC.ACU005.J.DIR01;THXC.ACU005.J.DIR02;THXC.ACU005.J.DIR03;THXC.ACU005.J.SIR01;THXC.ACU005.J.SIR02;THXC.ACU005.J.SIR03;THXC.ACU005.J.RIR01;THXC.ACU005.J.RIR02;THXC.ACU005.J.RIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU005.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU005.FJ.ZC.LIST = THXC.ACU005.F.DFJ01;THXC.ACU005.F.DFJ02;THXC.ACU005.F.SFJ01;THXC.ACU005.F.SFJ02;THXC.ACU005.F.RFJ01;THXC.ACU005.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU005.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU005.SB.ZC.LIST = THXC.ACU005.P.DSB01;THXC.ACU005.P.DSB02;THXC.ACU005.P.DSB03;THXC.ACU005.P.SSB01;THXC.ACU005.P.SSB02;THXC.ACU005.P.SSB03;THXC.ACU005.P.RSB01;THXC.ACU005.P.RSB02;THXC.ACU005.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU005.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU005.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU005.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU005.JG.ZC.LIST = THXC.ACU005.J.RJG01;THXC.ACU005.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU005.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU005.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU006 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CH.COUNT = 6 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CH.ZC.LIST = THXC.ACU006.X.DCH01;THXC.ACU006.X.DCH02;THXC.ACU006.X.SCH01;THXC.ACU006.X.SCH02;THXC.ACU006.X.RCH01;THXC.ACU006.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CH.WORDCOUNT = 24 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.CO.COUNT = 6 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.CO.ZC.LIST = THXC.ACU006.J.DCO01;THXC.ACU006.J.DCO02;THXC.ACU006.J.SCO01;THXC.ACU006.J.SCO02;THXC.ACU006.J.RCO01;THXC.ACU006.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.CO.WORDCOUNT = 24 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.WS.COUNT = 6 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.WS.ZC.LIST = THXC.ACU006.J.DWS01;THXC.ACU006.J.DWS02;THXC.ACU006.J.SWS01;THXC.ACU006.J.SWS02;THXC.ACU006.J.RWS01;THXC.ACU006.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU006.WS.WORDCOUNT = 74 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YQ.COUNT = 6 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YQ.ZC.LIST = THXC.ACU006.J.DYQ01;THXC.ACU006.J.DYQ02;THXC.ACU006.J.SYQ01;THXC.ACU006.J.SYQ02;THXC.ACU006.J.RYQ01;THXC.ACU006.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQ.WORDCOUNT = 24 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.HS.COUNT = 6 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.HS.ZC.LIST = THXC.ACU006.J.DHS01;THXC.ACU006.J.DHS02;THXC.ACU006.J.SHS01;THXC.ACU006.J.SHS02;THXC.ACU006.J.RHS01;THXC.ACU006.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU006.HS.WORDCOUNT = 24 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.YW.ZC.LIST = THXC.ACU006.J.SYW01;THXC.ACU006.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU006.DS.COUNT = 15 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU006.DS.ZC.LIST = THXC.ACU006.J.DIR01;THXC.ACU006.J.DIR02;THXC.ACU006.J.DIR03;THXC.ACU006.J.DIR04;THXC.ACU006.J.DIR05;THXC.ACU006.J.SIR01;THXC.ACU006.J.SIR02;THXC.ACU006.J.SIR03;THXC.ACU006.J.SIR04;THXC.ACU006.J.SIR05;THXC.ACU006.J.RIR01;THXC.ACU006.J.RIR02;THXC.ACU006.J.RIR03;THXC.ACU006.J.RIR04;THXC.ACU006.J.RIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU006.FJ.COUNT = 9 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU006.FJ.ZC.LIST = THXC.ACU006.F.DFJ01;THXC.ACU006.F.DFJ02;THXC.ACU006.F.DFJ03;THXC.ACU006.F.SFJ01;THXC.ACU006.F.SFJ02;THXC.ACU006.F.SFJ03;THXC.ACU006.F.RFJ01;THXC.ACU006.F.RFJ02;THXC.ACU006.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJSTAT.WORDCOUNT = 5 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.FJRT.WORDCOUNT = 48 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU006.SB.COUNT = 17 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU006.SB.ZC.LIST = THXC.ACU006.P.DSB01;THXC.ACU006.P.DSB02;THXC.ACU006.P.DSB03;THXC.ACU006.P.DSB04;THXC.ACU006.P.DSB05;THXC.ACU006.P.DSB06;THXC.ACU006.P.SSB01;THXC.ACU006.P.SSB02;THXC.ACU006.P.SSB03;THXC.ACU006.P.SSB04;THXC.ACU006.P.SSB05;THXC.ACU006.P.SSB06;THXC.ACU006.P.RSB01;THXC.ACU006.P.RSB02;THXC.ACU006.P.RSB03;THXC.ACU006.P.RSB04;THXC.ACU006.P.RSB05 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBSTAT.WORDCOUNT = 7 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU006.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU006.SBRT.WORDCOUNT = 86 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU006.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU006.JG.ZC.LIST = THXC.ACU006.J.DJG01;THXC.ACU006.J.RJG01;THXC.ACU006.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU006.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU006.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU008 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CH.ZC.LIST = THXC.ACU008.X.SCH01;THXC.ACU008.X.SCH02;THXC.ACU008.X.RCH01;THXC.ACU008.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.CO.ZC.LIST = THXC.ACU008.J.SCO01;THXC.ACU008.J.SCO02;THXC.ACU008.J.RCO01;THXC.ACU008.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.WS.ZC.LIST = THXC.ACU008.J.SWS01;THXC.ACU008.J.SWS02;THXC.ACU008.J.RWS01;THXC.ACU008.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU008.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YQ.ZC.LIST = THXC.ACU008.J.SYQ01;THXC.ACU008.J.SYQ02;THXC.ACU008.J.RYQ01;THXC.ACU008.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.HS.ZC.LIST = THXC.ACU008.J.SHS01;THXC.ACU008.J.SHS02;THXC.ACU008.J.RHS01;THXC.ACU008.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU008.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.YW.ZC.LIST = THXC.ACU008.J.SYW01;THXC.ACU008.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU008.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU008.DS.ZC.LIST = THXC.ACU008.J.RIR01;THXC.ACU008.J.RIR02;THXC.ACU008.J.RIR03;THXC.ACU008.J.RIR04;THXC.ACU008.J.RIR05;THXC.ACU008.J.SIR01;THXC.ACU008.J.SIR02;THXC.ACU008.J.SIR03;THXC.ACU008.J.SIR04;THXC.ACU008.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.DSALM.WORDCOUNT = 3 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU008.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU008.FJ.ZC.LIST = THXC.ACU008.F.SFJ01;THXC.ACU008.F.SFJ02;THXC.ACU008.F.SFJ03;THXC.ACU008.F.RFJ01;THXC.ACU008.F.RFJ02;THXC.ACU008.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU008.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU008.SB.ZC.LIST = THXC.ACU008.P.SSB01;THXC.ACU008.P.SSB02;THXC.ACU008.P.SSB03;THXC.ACU008.P.SSB04;THXC.ACU008.P.SSB05;THXC.ACU008.P.SSB06;THXC.ACU008.P.RSB01;THXC.ACU008.P.RSB02;THXC.ACU008.P.RSB03;THXC.ACU008.P.RSB04;THXC.ACU008.P.RSB05;THXC.ACU008.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU008.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU008.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU008.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU008.JG.ZC.LIST = THXC.ACU008.J.RJG01;THXC.ACU008.J.RJG02;THXC.ACU008.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU008.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU008.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU009 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CH.ZC.LIST = THXC.ACU009.X.SCH01;THXC.ACU009.X.SCH02;THXC.ACU009.X.RCH01;THXC.ACU009.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.CO.ZC.LIST = THXC.ACU009.J.SCO01;THXC.ACU009.J.SCO02;THXC.ACU009.J.RCO01;THXC.ACU009.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.WS.ZC.LIST = THXC.ACU009.J.SWS01;THXC.ACU009.J.SWS02;THXC.ACU009.J.RWS01;THXC.ACU009.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU009.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YQ.ZC.LIST = THXC.ACU009.J.SYQ01;THXC.ACU009.J.SYQ02;THXC.ACU009.J.RYQ01;THXC.ACU009.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.HS.ZC.LIST = THXC.ACU009.J.SHS01;THXC.ACU009.J.SHS02;THXC.ACU009.J.RHS01;THXC.ACU009.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU009.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.YW.ZC.LIST = THXC.ACU009.J.SYW01;THXC.ACU009.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU009.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU009.DS.ZC.LIST = THXC.ACU009.J.RIR01;THXC.ACU009.J.RIR02;THXC.ACU009.J.RIR03;THXC.ACU009.J.SIR01;THXC.ACU009.J.SIR02;THXC.ACU009.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU009.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU009.FJ.ZC.LIST = THXC.ACU009.F.SFJ01;THXC.ACU009.F.SFJ02;THXC.ACU009.F.RFJ01;THXC.ACU009.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU009.SB.COUNT = 12 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU009.SB.ZC.LIST = THXC.ACU009.P.SSB01;THXC.ACU009.P.SSB02;THXC.ACU009.P.SSB03;THXC.ACU009.P.SSB04;THXC.ACU009.P.SSB05;THXC.ACU009.P.SSB06;THXC.ACU009.P.RSB01;THXC.ACU009.P.RSB02;THXC.ACU009.P.RSB03;THXC.ACU009.P.RSB04;THXC.ACU009.P.RSB05;THXC.ACU009.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU009.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU009.SBRT.WORDCOUNT = 64 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU009.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU009.JG.ZC.LIST = THXC.ACU009.J.RJG01;THXC.ACU009.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU009.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU009.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU010 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CH.ZC.LIST = THXC.ACU010.X.SCH01;THXC.ACU010.X.SCH02;THXC.ACU010.X.RCH01;THXC.ACU010.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.CO.ZC.LIST = THXC.ACU010.J.SCO01;THXC.ACU010.J.SCO02;THXC.ACU010.J.RCO01;THXC.ACU010.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.WS.ZC.LIST = THXC.ACU010.J.SWS01;THXC.ACU010.J.SWS02;THXC.ACU010.J.RWS01;THXC.ACU010.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU010.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YQ.ZC.LIST = THXC.ACU010.J.SYQ01;THXC.ACU010.J.SYQ02;THXC.ACU010.J.RYQ01;THXC.ACU010.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.HS.ZC.LIST = THXC.ACU010.J.SHS01;THXC.ACU010.J.SHS02;THXC.ACU010.J.RHS01;THXC.ACU010.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU010.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.YW.ZC.LIST = THXC.ACU010.J.SYW01;THXC.ACU010.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU010.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU010.DS.ZC.LIST = THXC.ACU010.J.RIR01;THXC.ACU010.J.RIR02;THXC.ACU010.J.RIR03;THXC.ACU010.J.SIR01;THXC.ACU010.J.SIR02;THXC.ACU010.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU010.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU010.FJ.ZC.LIST = THXC.ACU010.F.SFJ01;THXC.ACU010.F.SFJ02;THXC.ACU010.F.RFJ01;THXC.ACU010.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU010.SB.COUNT = 11 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU010.SB.ZC.LIST = THXC.ACU010.P.SSB01;THXC.ACU010.P.SSB02;THXC.ACU010.P.SSB03;THXC.ACU010.P.SSB04;THXC.ACU010.P.SSB05;THXC.ACU010.P.RSB01;THXC.ACU010.P.RSB02;THXC.ACU010.P.RSB03;THXC.ACU010.P.RSB04;THXC.ACU010.P.RSB05;THXC.ACU010.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU010.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU010.SBRT.WORDCOUNT = 60 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU010.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU010.JG.ZC.LIST = THXC.ACU010.J.RJG01;THXC.ACU010.J.RJG02;THXC.ACU010.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU010.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU010.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU011 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CH.ZC.LIST = THXC.ACU011.X.SCH01;THXC.ACU011.X.SCH02;THXC.ACU011.X.RCH01;THXC.ACU011.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.CO.ZC.LIST = THXC.ACU011.J.SCO01;THXC.ACU011.J.SCO02;THXC.ACU011.J.RCO01;THXC.ACU011.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.WS.ZC.LIST = THXC.ACU011.J.SWS01;THXC.ACU011.J.SWS02;THXC.ACU011.J.RWS01;THXC.ACU011.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU011.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YQ.ZC.LIST = THXC.ACU011.J.SYQ01;THXC.ACU011.J.SYQ02;THXC.ACU011.J.RYQ01;THXC.ACU011.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.HS.ZC.LIST = THXC.ACU011.J.SHS01;THXC.ACU011.J.SHS02;THXC.ACU011.J.RHS01;THXC.ACU011.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU011.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.YW.ZC.LIST = THXC.ACU011.J.SYW01;THXC.ACU011.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU011.DS.COUNT = 8 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU011.DS.ZC.LIST = THXC.ACU011.J.RIR01;THXC.ACU011.J.RIR02;THXC.ACU011.J.RIR03;THXC.ACU011.J.RIR04;THXC.ACU011.J.SIR01;THXC.ACU011.J.SIR02;THXC.ACU011.J.SIR03;THXC.ACU011.J.SIR04 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU011.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU011.FJ.ZC.LIST = THXC.ACU011.F.SFJ01;THXC.ACU011.F.SFJ02;THXC.ACU011.F.SFJ03;THXC.ACU011.F.RFJ01;THXC.ACU011.F.RFJ02;THXC.ACU011.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU011.SB.COUNT = 9 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU011.SB.ZC.LIST = THXC.ACU011.P.SSB01;THXC.ACU011.P.SSB02;THXC.ACU011.P.SSB03;THXC.ACU011.P.SSB04;THXC.ACU011.P.SSB05;THXC.ACU011.P.RSB01;THXC.ACU011.P.RSB02;THXC.ACU011.P.RSB03;THXC.ACU011.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBSTAT.WORDCOUNT = 4 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU011.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU011.SBRT.WORDCOUNT = 58 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU011.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU011.JG.ZC.LIST = THXC.ACU011.J.RJG01;THXC.ACU011.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU011.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU011.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU013 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CH.ZC.LIST = THXC.ACU013.X.SCH01;THXC.ACU013.X.SCH02;THXC.ACU013.X.RCH01;THXC.ACU013.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.CO.ZC.LIST = THXC.ACU013.J.SCO01;THXC.ACU013.J.SCO02;THXC.ACU013.J.RCO01;THXC.ACU013.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.WS.ZC.LIST = THXC.ACU013.J.SWS01;THXC.ACU013.J.SWS02;THXC.ACU013.J.RWS01;THXC.ACU013.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU013.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YQ.ZC.LIST = THXC.ACU013.J.SYQ01;THXC.ACU013.J.SYQ02;THXC.ACU013.J.RYQ01;THXC.ACU013.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.HS.ZC.LIST = THXC.ACU013.J.SHS01;THXC.ACU013.J.SHS02;THXC.ACU013.J.RHS01;THXC.ACU013.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU013.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.YW.ZC.LIST = THXC.ACU013.J.SYW01;THXC.ACU013.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU013.DS.COUNT = 10 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU013.DS.ZC.LIST = THXC.ACU013.J.RIR01;THXC.ACU013.J.RIR02;THXC.ACU013.J.RIR03;THXC.ACU013.J.RIR04;THXC.ACU013.J.RIR05;THXC.ACU013.J.SIR01;THXC.ACU013.J.SIR02;THXC.ACU013.J.SIR03;THXC.ACU013.J.SIR04;THXC.ACU013.J.SIR05 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU013.FJ.COUNT = 6 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU013.FJ.ZC.LIST = THXC.ACU013.F.SFJ01;THXC.ACU013.F.SFJ02;THXC.ACU013.F.SFJ03;THXC.ACU013.F.RFJ01;THXC.ACU013.F.RFJ02;THXC.ACU013.F.RFJ03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJSTAT.WORDCOUNT = 3 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.FJRT.WORDCOUNT = 42 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU013.SB.COUNT = 14 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU013.SB.ZC.LIST = THXC.ACU013.P.SSB01;THXC.ACU013.P.SSB02;THXC.ACU013.P.SSB03;THXC.ACU013.P.SSB04;THXC.ACU013.P.SSB05;THXC.ACU013.P.SSB06;THXC.ACU013.P.SSB07;THXC.ACU013.P.SSB08;THXC.ACU013.P.RSB01;THXC.ACU013.P.RSB02;THXC.ACU013.P.RSB03;THXC.ACU013.P.RSB04;THXC.ACU013.P.RSB05;THXC.ACU013.P.RSB06 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBSTAT.WORDCOUNT = 5 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU013.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU013.SBRT.WORDCOUNT = 68 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU013.JG.COUNT = 3 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU013.JG.ZC.LIST = THXC.ACU013.J.RJG01;THXC.ACU013.J.RJG02;THXC.ACU013.J.RJG03 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU013.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU013.JGSTAT.WORDCOUNT = 1 + + + +######## THXC.ACU014 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CH.ZC.LIST = THXC.ACU014.X.SCH01;THXC.ACU014.X.SCH02;THXC.ACU014.X.RCH01;THXC.ACU014.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.CO.ZC.LIST = THXC.ACU014.J.SCO01;THXC.ACU014.J.SCO02;THXC.ACU014.J.RCO01;THXC.ACU014.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.WS.ZC.LIST = THXC.ACU014.J.SWS01;THXC.ACU014.J.SWS02;THXC.ACU014.J.RWS01;THXC.ACU014.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU014.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YQ.ZC.LIST = THXC.ACU014.J.SYQ01;THXC.ACU014.J.SYQ02;THXC.ACU014.J.RYQ01;THXC.ACU014.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.HS.ZC.LIST = THXC.ACU014.J.SHS01;THXC.ACU014.J.SHS02;THXC.ACU014.J.RHS01;THXC.ACU014.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU014.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.YW.ZC.LIST = THXC.ACU014.J.SYW01;THXC.ACU014.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU014.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU014.DS.ZC.LIST = THXC.ACU014.J.RIR01;THXC.ACU014.J.RIR02;THXC.ACU014.J.RIR03;THXC.ACU014.J.SIR01;THXC.ACU014.J.SIR02;THXC.ACU014.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU014.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU014.FJ.ZC.LIST = THXC.ACU014.F.SFJ01;THXC.ACU014.F.SFJ02;THXC.ACU014.F.RFJ01;THXC.ACU014.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU014.SB.COUNT = 6 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU014.SB.ZC.LIST = THXC.ACU014.P.SSB01;THXC.ACU014.P.SSB02;THXC.ACU014.P.SSB03;THXC.ACU014.P.RSB01;THXC.ACU014.P.RSB02;THXC.ACU014.P.RSB03 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU014.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU014.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU014.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU014.JG.ZC.LIST = THXC.ACU014.J.RJG01;THXC.ACU014.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU014.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU014.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU015 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CH.ZC.LIST = THXC.ACU015.X.SCH01;THXC.ACU015.X.SCH02;THXC.ACU015.X.RCH01;THXC.ACU015.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.CO.ZC.LIST = THXC.ACU015.J.SCO01;THXC.ACU015.J.SCO02;THXC.ACU015.J.RCO01;THXC.ACU015.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.WS.ZC.LIST = THXC.ACU015.J.SWS01;THXC.ACU015.J.SWS02;THXC.ACU015.J.RWS01;THXC.ACU015.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU015.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YQ.ZC.LIST = THXC.ACU015.J.SYQ01;THXC.ACU015.J.SYQ02;THXC.ACU015.J.RYQ01;THXC.ACU015.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.HS.ZC.LIST = THXC.ACU015.J.SHS01;THXC.ACU015.J.SHS02;THXC.ACU015.J.RHS01;THXC.ACU015.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU015.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.YW.ZC.LIST = THXC.ACU015.J.SYW01;THXC.ACU015.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU015.DS.COUNT = 6 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU015.DS.ZC.LIST = THXC.ACU015.J.RIR01;THXC.ACU015.J.RIR02;THXC.ACU015.J.RIR03;THXC.ACU015.J.SIR01;THXC.ACU015.J.SIR02;THXC.ACU015.J.SIR03 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.DSALM.WORDCOUNT = 2 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU015.FJ.COUNT = 4 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU015.FJ.ZC.LIST = THXC.ACU015.F.SFJ01;THXC.ACU015.F.SFJ02;THXC.ACU015.F.RFJ01;THXC.ACU015.F.RFJ02 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJSTAT.WORDCOUNT = 2 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.FJRT.WORDCOUNT = 38 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU015.SB.COUNT = 8 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU015.SB.ZC.LIST = THXC.ACU015.P.SSB01;THXC.ACU015.P.SSB02;THXC.ACU015.P.SSB03;THXC.ACU015.P.SSB04;THXC.ACU015.P.RSB01;THXC.ACU015.P.RSB02;THXC.ACU015.P.RSB03;THXC.ACU015.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU015.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU015.SBRT.WORDCOUNT = 54 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU015.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU015.JG.ZC.LIST = THXC.ACU015.J.RJG01;THXC.ACU015.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU015.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU015.JGSTAT.WORDCOUNT = 1 + + + + +######## THXC.ACU016 ######## +#\u7532\u70f7\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CH.COUNT = 4 +#\u7532\u70f7\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CH.ZC.LIST = THXC.ACU016.X.SCH01;THXC.ACU016.X.SCH02;THXC.ACU016.X.RCH01;THXC.ACU016.X.RCH02 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CH.START = 300 +#\u7532\u70f7\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CH.WORDCOUNT = 16 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CHALM.START = 26 +#\u7532\u70f7\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.CHALM.WORDCOUNT = 1 + + +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.CO.COUNT = 4 +#\u4e00\u6c27\u5316\u78b3\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.CO.ZC.LIST = THXC.ACU016.J.SCO01;THXC.ACU016.J.SCO02;THXC.ACU016.J.RCO01;THXC.ACU016.J.RCO02 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.CO.START = 550 +#\u4e00\u6c27\u5316\u78b3\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.CO.WORDCOUNT = 16 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.COALM.START = 36 +#\u4e00\u6c27\u5316\u78b3\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.COALM.WORDCOUNT = 1 + + +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.WS.COUNT = 4 +#\u6e29\u6e7f\u5ea6\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.WS.ZC.LIST = THXC.ACU016.J.SWS01;THXC.ACU016.J.SWS02;THXC.ACU016.J.RWS01;THXC.ACU016.J.RWS02 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WS.START = 400 +#\u6e29\u6e7f\u5ea6\u76d1\u6d4b\u503c\u6240\u5360\u5b57\u6570 +THXC.ACU016.WS.WORDCOUNT = 66 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.WSALM.START = 30 +#\u6e29\u6e7f\u5ea6\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.WSALM.WORDCOUNT = 3 + + +#\u6c27\u6c14\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YQ.COUNT = 4 +#\u6c27\u6c14\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YQ.ZC.LIST = THXC.ACU016.J.SYQ01;THXC.ACU016.J.SYQ02;THXC.ACU016.J.RYQ01;THXC.ACU016.J.RYQ02 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQ.START = 500 +#\u6c27\u6c14\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQ.WORDCOUNT = 16 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YQALM.START = 34 +#\u6c27\u6c14\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YQALM.WORDCOUNT = 1 + + +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.HS.COUNT = 4 +#\u786b\u5316\u6c22\u4f20\u611f\u5668\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.HS.ZC.LIST = THXC.ACU016.J.SHS01;THXC.ACU016.J.SHS02;THXC.ACU016.J.RHS01;THXC.ACU016.J.RHS02 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HS.START = 350 +#\u786b\u5316\u6c22\u6d53\u5ea6\u53c2\u6570\u6240\u5360\u5b57\u6570 +THXC.ACU016.HS.WORDCOUNT = 16 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.HSALM.START = 28 +#\u786b\u5316\u6c22\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.HSALM.WORDCOUNT = 1 + + +#\u7206\u7ba1\u6db2\u4f4d\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.YW.COUNT = 2 +#\u7206\u7ba1\u6db2\u4f4d\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.YW.ZC.LIST = THXC.ACU016.J.SYW01;THXC.ACU016.J.RYW01 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.YWALM.START = 25 +#\u7206\u7ba1\u6db2\u4f4d\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.YWALM.WORDCOUNT = 1 + + +#\u5bf9\u5c04\u4f20\u611f\u5668\u6570\u91cf +THXC.ACU016.DS.COUNT = 4 +#\u65e0\u7ebf\u5bf9\u5c04\u8bbe\u5907\u7f16\u7801\u5217\u8868 +THXC.ACU016.DS.ZC.LIST = THXC.ACU016.J.RIR01;THXC.ACU016.J.RIR02;THXC.ACU016.J.SIR01;THXC.ACU016.J.SIR02 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.DSALM.START = 38 +#\u5bf9\u5c04\u62a5\u8b66\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.DSALM.WORDCOUNT = 1 + + +#\u98ce\u673a\u6570\u91cf +THXC.ACU016.FJ.COUNT = 2 +#\u98ce\u673a\u7f16\u7801\u5217\u8868 +THXC.ACU016.FJ.ZC.LIST = THXC.ACU016.F.SFJ01;THXC.ACU016.F.RFJ01 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJSTAT.START = 16 +#\u98ce\u673a\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJSTAT.WORDCOUNT = 1 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.FJRT.START = 200 +#\u98ce\u673a\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.FJRT.WORDCOUNT = 34 + + +#\u6c34\u6cf5\u6570\u91cf +THXC.ACU016.SB.COUNT = 7 +#\u6c34\u6cf5\u7f16\u7801\u5217\u8868 +THXC.ACU016.SB.ZC.LIST = THXC.ACU016.P.SSB01;THXC.ACU016.P.SSB02;THXC.ACU016.P.SSB03;THXC.ACU016.P.RSB01;THXC.ACU016.P.RSB02;THXC.ACU016.P.RSB03;THXC.ACU016.P.RSB04 +#\u98ce\u673a\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBSTAT.START = 5 +#\u6c34\u6cf5\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBSTAT.WORDCOUNT = 3 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +THXC.ACU016.SBRT.START = 100 +#\u6c34\u6cf5\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +THXC.ACU016.SBRT.WORDCOUNT = 50 + + +#\u7167\u660e\u6570\u91cf +#THXC.ACU002.ZM.COUNT = 3 +#\u7167\u660e\u7f16\u7801\u5217\u8868 +#THXC.ACU002.ZM.ZC.LIST = THXC.ACU002.Z.RZM01;THXC.ACU002.Z.RZM02;THXC.ACU002.Z.RZM03 +#\u7167\u660e\u72b6\u6001\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMSTAT.START = 2 +#\u7167\u660e\u72b6\u6001\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMSTAT.WORDCOUNT = 1 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u8d77\u59cb\u5730\u5740 +#THXC.ACU002.ZMRT.START = 70 +#\u7167\u660e\u8fd0\u884c\u65f6\u957f\u6240\u5360\u5b57\u6570 +#THXC.ACU002.ZMRT.WORDCOUNT = 16 + + +#\u4e95\u76d6\u6570\u91cf +THXC.ACU016.JG.COUNT = 2 +#\u4e95\u76d6\u7f16\u7801\u5217\u8868 +THXC.ACU016.JG.ZC.LIST = THXC.ACU016.J.RJG01;THXC.ACU016.J.RJG02 +#\u4e95\u76d6\u72b6\u6001\u8d77\u59cb\u5730\u5740 +THXC.ACU016.JGSTAT.START = 3 +#\u4e95\u76d6\u72b6\u6001\u6240\u5360\u5b57\u6570 +THXC.ACU016.JGSTAT.WORDCOUNT = 1 \ No newline at end of file diff --git a/src/com/szpg/DSCTest.java b/src/com/szpg/DSCTest.java index 3e9ac7f..dbfcd02 100644 --- a/src/com/szpg/DSCTest.java +++ b/src/com/szpg/DSCTest.java @@ -1,418 +1,418 @@ -package com.szpg; - -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; -import com.szpg.task.ReadCH4StatusTask; -import com.szpg.task.ReadCH4ValueTask; -import com.szpg.task.ReadCOStatusTask; -import com.szpg.task.ReadCOValueTask; -import com.szpg.task.ReadDSStatusTask; -import com.szpg.task.ReadFjRtTask; -import com.szpg.task.ReadFjStatTask; -import com.szpg.task.ReadHSStatusTask; -import com.szpg.task.ReadHSValueTask; -import com.szpg.task.ReadJgStatusTask; -import com.szpg.task.ReadO2StatusTask; -import com.szpg.task.ReadO2ValueTask; -import com.szpg.task.ReadSbRtTask; -import com.szpg.task.ReadSbStatTask; -import com.szpg.task.ReadWSStatusTask; -import com.szpg.task.ReadWSValueTask; -import com.szpg.task.ReadYWStatusTask; -import com.szpg.task.ReadZmRtTask; -import com.szpg.task.ReadZmStatTask; -import com.szpg.task.ResetDsTask; -import com.szpg.task.SetCH4ThresholdTask; -import com.szpg.task.SetCOThresholdTask; -import com.szpg.task.SetHSThresholdTask; -import com.szpg.task.SetJgUnlockTask; -import com.szpg.task.SetO2ThresholdTask; -import com.szpg.task.SetSdThresholdTask; -import com.szpg.task.SetWdThresholdTask; -import com.szpg.task.TurnOffFjTask; -import com.szpg.task.TurnOffZmTask; -import com.szpg.task.TurnOnFjTask; -import com.szpg.task.TurnOnZmTask; - -public class DSCTest { - - private static DSCTest dsc = new DSCTest(); - - public static void main(String[] args) { - // PLC设备地址和端口 - ACUClient client = new ACUClient("192.168.0.244", 6800); - - PgAcu acu = new PgAcuDaoImpl().findACUById(1); - client.setAcucode(acu.getAcu_code()); - client.setNet(acu.getAcu_net()); //网络号 - client.setNode(acu.getAcu_node()); //节点号 - client.setUnit(acu.getAcu_unit()); //单元号 - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - - // 甲烷 -// dsc.testSendCH4Command(); -// dsc.testSendCH4StatusCommand(); - - // 温湿度 -// dsc.testSendWSCommand(); -// dsc.testSendWSStatusCommand(); - - // 一氧化碳 -// dsc.testSendCOCommand(); -// dsc.testSendCOStatusCommand(); - - // 氧气 -// dsc.testSendO2Command(); -// dsc.testSendO2StatusCommand(); - - // 硫化氢 -// dsc.testSendHSCommand(); -// dsc.testSendHSStatusCommand(); - - // 爆管液位 -// dsc.testSendYWStatusCommand(); - - // 对射报警 -// dsc.testSendDSStatusCommand(); - - // 井盖 -// dsc.testSendJgStatusCommand(); - - // 风机 -// dsc.testSendFjStatCommand(); -// dsc.testSendFjRtCommand(); - - // 水泵 -// dsc.testSendSbRtCommand(); -// dsc.testSendSbStatCommand(); - - // 照明 -// dsc.testSendZmRtCommand(); -// dsc.testSendZmStatCommand(); - - // 照明开关 -// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); -// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); - - // 风机开关 -// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); -// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); - - // 井盖解锁 -// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); - - // 对射报警清除 -// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); - - // 甲烷报警阈值设定 -// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); - - // 硫化氢报警阈值设定 -// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); - - // 温湿度报警阈值设定 -// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); - - // 氧气报警阈值设定 - dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); - - // 一氧化碳阈值设定 - dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); - } - - /** - * 发送查询甲烷监测值命令 - * - * @param client - */ - private void testSendCH4Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询甲烷报警状态命令 - * @param client - */ - private void testSendCH4StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度监测值命令 - * - * @param client - */ - private void testSendWSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询温湿度报警状态命令 - * @param client - */ - private void testSendWSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳监测值命令 - * - * @param client - */ - private void testSendCOCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendCOStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询氧气监测值命令 - * - * @param client - */ - private void testSendO2Command() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询一氧化碳报警状态命令 - * @param client - */ - private void testSendO2StatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢监测值命令 - * - * @param client - */ - private void testSendHSCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询硫化氢报警状态命令 - * @param client - */ - private void testSendHSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询爆管液位报警状态命令 - * @param client - */ - private void testSendYWStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); - } - - - /** - * 发送查询对射报警状态命令 - * @param client - */ - private void testSendDSStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询井盖状态命令 - * @param client - */ - private void testSendJgStatusCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行状态命令 - * @param client - */ - private void testSendFjStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询风机运行时长命令 - * @param client - */ - private void testSendFjRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行状态命令 - * @param client - */ - private void testSendSbStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询水泵运行时长命令 - * @param client - */ - private void testSendSbRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行状态命令 - * @param client - */ - private void testSendZmStatCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); - } - - /** - * 发送查询照明运行时长命令 - * @param client - */ - private void testSendZmRtCommand() { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); - } - - /** - * 发送打开照明 - */ - private void testSendTurnOnZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭照明 - */ - private void testSendTurnOffZmCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送打开风机 - */ - private void testSendTurnOnFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送关闭风机 - */ - private void testSendTurnOffFjCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); - sche.shutdown(); - } - - - /** - * 发送解锁井盖 - */ - private void testSendUnlockJgCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 清除对射报警 - */ - private void testSendResetDsCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置甲烷报警阈值 - */ - private void testSendCH4ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendHSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置硫化氢报警阈值 - */ - private void testSendWSThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - - ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); - sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); - sche2.shutdown(); - } - - /** - * 设置氧气报警阈值 - */ - private void testSendO2ThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); - sche.shutdown(); - } - - /** - * 设置一氧化碳报警阈值 - */ - private void testSendCOThresholdCommand(String deviceCode) { - ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); - sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); - sche.shutdown(); - } -} +package com.szpg; + +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadDSStatusTask; +import com.szpg.task.ReadFjRtTask; +import com.szpg.task.ReadFjStatTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadJgStatusTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadSbRtTask; +import com.szpg.task.ReadSbStatTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; +import com.szpg.task.ReadYWStatusTask; +import com.szpg.task.ReadZmRtTask; +import com.szpg.task.ReadZmStatTask; +import com.szpg.task.ResetDsTask; +import com.szpg.task.SetCH4ThresholdTask; +import com.szpg.task.SetCOThresholdTask; +import com.szpg.task.SetHSThresholdTask; +import com.szpg.task.SetJgUnlockTask; +import com.szpg.task.SetO2ThresholdTask; +import com.szpg.task.SetSdThresholdTask; +import com.szpg.task.SetWdThresholdTask; +import com.szpg.task.TurnOffFjTask; +import com.szpg.task.TurnOffZmTask; +import com.szpg.task.TurnOnFjTask; +import com.szpg.task.TurnOnZmTask; + +public class DSCTest { + + private static DSCTest dsc = new DSCTest(); + + public static void main(String[] args) { + // PLC设备地址和端口 + ACUClient client = new ACUClient("172.16.0.35", 9600); + + PgAcu acu = new PgAcuDaoImpl().findACUById(1); + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); //网络号 + client.setNode(acu.getAcu_node()); //节点号 + client.setUnit(acu.getAcu_unit()); //单元号 + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + + // 甲烷 +// dsc.testSendCH4Command(); +// dsc.testSendCH4StatusCommand(); + + // 温湿度 + dsc.testSendWSCommand(); + dsc.testSendWSStatusCommand(); + + // 一氧化碳 +// dsc.testSendCOCommand(); +// dsc.testSendCOStatusCommand(); + + // 氧气 +// dsc.testSendO2Command(); +// dsc.testSendO2StatusCommand(); + + // 硫化氢 +// dsc.testSendHSCommand(); +// dsc.testSendHSStatusCommand(); + + // 爆管液位 +// dsc.testSendYWStatusCommand(); + + // 对射报警 +// dsc.testSendDSStatusCommand(); + + // 井盖 +// dsc.testSendJgStatusCommand(); + + // 风机 +// dsc.testSendFjStatCommand(); +// dsc.testSendFjRtCommand(); + + // 水泵 +// dsc.testSendSbRtCommand(); +// dsc.testSendSbStatCommand(); + + // 照明 +// dsc.testSendZmRtCommand(); +// dsc.testSendZmStatCommand(); + + // 照明开关 +// dsc.testSendTurnOnZmCommand("YXL.ACU001.RZM01"); +// dsc.testSendTurnOffZmCommand("YXL.ACU001.RZM01"); + + // 风机开关 +// dsc.testSendTurnOnFjCommand("YXL.ACU001.RFJ01"); +// dsc.testSendTurnOffFjCommand("YXL.ACU001.RFJ01"); + + // 井盖解锁 +// dsc.testSendUnlockJgCommand("YXL.ACU001.RJG01"); + + // 对射报警清除 +// dsc.testSendResetDsCommand("YXL.ACU001.DIR02"); + + // 甲烷报警阈值设定 +// dsc.testSendCH4ThresholdCommand("YXL.ACU001.SCH01"); + + // 硫化氢报警阈值设定 +// dsc.testSendHSThresholdCommand("YXL.ACU001.RHS01"); + + // 温湿度报警阈值设定 +// dsc.testSendWSThresholdCommand("YXL.ACU001.SWS01"); + + // 氧气报警阈值设定 + dsc.testSendO2ThresholdCommand("YXL.ACU001.SYQ01"); + + // 一氧化碳阈值设定 + dsc.testSendCOThresholdCommand("YXL.ACU001.RCO01"); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询爆管液位报警状态命令 + * @param client + */ + private void testSendYWStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadYWStatusTask(), 10, 300, TimeUnit.SECONDS); + } + + + /** + * 发送查询对射报警状态命令 + * @param client + */ + private void testSendDSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadDSStatusTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询井盖状态命令 + * @param client + */ + private void testSendJgStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadJgStatusTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行状态命令 + * @param client + */ + private void testSendFjStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjStatTask(), 15, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询风机运行时长命令 + * @param client + */ + private void testSendFjRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadFjRtTask(), 20, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行状态命令 + * @param client + */ + private void testSendSbStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbStatTask(), 25, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询水泵运行时长命令 + * @param client + */ + private void testSendSbRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadSbRtTask(), 30, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行状态命令 + * @param client + */ + private void testSendZmStatCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmStatTask(), 35, 300, TimeUnit.SECONDS); + } + + /** + * 发送查询照明运行时长命令 + * @param client + */ + private void testSendZmRtCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadZmRtTask(), 40, 300, TimeUnit.SECONDS); + } + + /** + * 发送打开照明 + */ + private void testSendTurnOnZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnZmTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭照明 + */ + private void testSendTurnOffZmCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffZmTask(deviceCode), 20, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送打开风机 + */ + private void testSendTurnOnFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOnFjTask(deviceCode), 25, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送关闭风机 + */ + private void testSendTurnOffFjCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new TurnOffFjTask(deviceCode), 30, TimeUnit.SECONDS); + sche.shutdown(); + } + + + /** + * 发送解锁井盖 + */ + private void testSendUnlockJgCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetJgUnlockTask(deviceCode, 1), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 清除对射报警 + */ + private void testSendResetDsCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new ResetDsTask(deviceCode), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置甲烷报警阈值 + */ + private void testSendCH4ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCH4ThresholdTask(deviceCode, 40.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendHSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetHSThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置硫化氢报警阈值 + */ + private void testSendWSThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetWdThresholdTask(deviceCode, 35.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + + ScheduledExecutorService sche2 = new ScheduledThreadPoolExecutor(1); + sche2.schedule(new SetSdThresholdTask(deviceCode, 75.0f), 20, TimeUnit.SECONDS); + sche2.shutdown(); + } + + /** + * 设置氧气报警阈值 + */ + private void testSendO2ThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetO2ThresholdTask(deviceCode, 18.0f), 15, TimeUnit.SECONDS); + sche.shutdown(); + } + + /** + * 设置一氧化碳报警阈值 + */ + private void testSendCOThresholdCommand(String deviceCode) { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.schedule(new SetCOThresholdTask(deviceCode, 55.0f), 20, TimeUnit.SECONDS); + sche.shutdown(); + } +} diff --git a/src/com/szpg/SendBaseTest.java b/src/com/szpg/SendBaseTest.java new file mode 100644 index 0000000..ddfdf52 --- /dev/null +++ b/src/com/szpg/SendBaseTest.java @@ -0,0 +1,43 @@ +package com.szpg; + +import java.util.List; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.util.HttpRequest; + +public class SendBaseTest { + + public static void main(String[] args) { + // 1根据ACU获取其所有的资产设备Device + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List blList = blDao.findBlByAcu("THXC.ACU002"); + + System.out.println("开始推送变量数据" + blList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgHjsbbl bl : blList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=HJSBBLB"); + sb.append("&Ent.BLBH=").append(bl.getBlbh()); + sb.append("&Ent.ZCBH=").append(bl.getZcbh()); + sb.append("&Ent.PLCDB=").append(bl.getPlcdb()); + sb.append("&Ent.BLMS=").append(bl.getBlms()); + sb.append("&Ent.BLZLX=").append(bl.getBlzlx()); + sb.append("&Ent.CJPL=").append(bl.getCjpl()); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/db/dao/PgCODao.java b/src/com/szpg/db/dao/PgCODao.java index a3736bf..5b3c06c 100644 --- a/src/com/szpg/db/dao/PgCODao.java +++ b/src/com/szpg/db/dao/PgCODao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; - -/** - * 一氧化碳相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCODao { - - /******** 一氧化碳浓度变量值 ********/ - public List findAllPblz(); - public PgCO findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCO ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 一氧化碳浓度报警状态 ********/ - public List findAllSbjz(); - public PgCOAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCOAlm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; + +/** + * 一氧化碳相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCODao { + + /******** 一氧化碳浓度变量值 ********/ + public List findAllPblz(); + public PgCO findPblzById(Integer id); + public PgCO findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCO ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 一氧化碳浓度报警状态 ********/ + public List findAllSbjz(); + public PgCOAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCOAlm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgCh4Dao.java b/src/com/szpg/db/dao/PgCh4Dao.java index 5c81046..6196f6e 100644 --- a/src/com/szpg/db/dao/PgCh4Dao.java +++ b/src/com/szpg/db/dao/PgCh4Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; - -/** - * 甲烷相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgCh4Dao { - - /******** 甲烷浓度变量值 ********/ - public List findAllPblz(); - public PgCh4 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgCh4 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 甲烷浓度报警状态 ********/ - public List findAllSbjz(); - public PgCh4Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgCh4Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; + +/** + * 甲烷相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgCh4Dao { + + /******** 甲烷浓度变量值 ********/ + public List findAllPblz(); + public PgCh4 findPblzById(Integer id); + public PgCh4 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgCh4 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 甲烷浓度报警状态 ********/ + public List findAllSbjz(); + public PgCh4Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgCh4Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgDeviceDao.java b/src/com/szpg/db/dao/PgDeviceDao.java index c3759bf..016be43 100644 --- a/src/com/szpg/db/dao/PgDeviceDao.java +++ b/src/com/szpg/db/dao/PgDeviceDao.java @@ -1,7 +1,16 @@ -package com.szpg.db.dao; - -public interface PgDeviceDao { - - public String findAcuCodeByCode(String code); - public Integer findDeviceIdByCode(String code); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; + +public interface PgDeviceDao { + + public String findAcuCodeByCode(String code); + public Integer findDeviceIdByCode(String code); + + public List findDeviceByAcu(String acucode); + + public int addGenerlAlarmRecord(PgAlarm alarmRec); +} diff --git a/src/com/szpg/db/dao/PgHSDao.java b/src/com/szpg/db/dao/PgHSDao.java index 779a6a7..ab4260f 100644 --- a/src/com/szpg/db/dao/PgHSDao.java +++ b/src/com/szpg/db/dao/PgHSDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; - -/** - * 硫化氢相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgHSDao { - - /******** 硫化氢浓度变量值 ********/ - public List findAllPblz(); - public PgSH findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgSH hs); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 硫化氢浓度报警状态 ********/ - public List findAllSbjz(); - public PgSHAlm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgSHAlm hsalm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; + +/** + * 硫化氢相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgHSDao { + + /******** 硫化氢浓度变量值 ********/ + public List findAllPblz(); + public PgSH findPblzById(Integer id); + public PgSH findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgSH hs); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 硫化氢浓度报警状态 ********/ + public List findAllSbjz(); + public PgSHAlm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgSHAlm hsalm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgHjsbblDao.java b/src/com/szpg/db/dao/PgHjsbblDao.java index e37f44d..788141f 100644 --- a/src/com/szpg/db/dao/PgHjsbblDao.java +++ b/src/com/szpg/db/dao/PgHjsbblDao.java @@ -1,8 +1,11 @@ -package com.szpg.db.dao; - -import com.szpg.db.data.PgHjsbbl; - -public interface PgHjsbblDao { - - public PgHjsbbl findBlByBh(String blbh); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgHjsbbl; + +public interface PgHjsbblDao { + + public PgHjsbbl findBlByBh(String blbh); + public List findBlByAcu(String acucode); +} diff --git a/src/com/szpg/db/dao/PgO2Dao.java b/src/com/szpg/db/dao/PgO2Dao.java index 2010c96..5c29ac2 100644 --- a/src/com/szpg/db/dao/PgO2Dao.java +++ b/src/com/szpg/db/dao/PgO2Dao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; - -/** - * 氧气相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgO2Dao { - - /******** 氧气浓度变量值 ********/ - public List findAllPblz(); - public PgO2 findPblzById(Integer id); - - public List findPblzByDevice(Integer deviceid); - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addPblzRecord(PgO2 ch4); - public int addPblzRecord(float value, String tm, int deviceid); - - - /******** 氧气浓度报警状态 ********/ - public List findAllSbjz(); - public PgO2Alm findSbjzById(Integer id); - - public List findSbjzByDevice(Integer deviceid); - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addSbjzRecord(PgO2Alm ch4alm); - public int addSbjzRecord(boolean status, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; + +/** + * 氧气相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgO2Dao { + + /******** 氧气浓度变量值 ********/ + public List findAllPblz(); + public PgO2 findPblzById(Integer id); + public PgO2 findLatestPblzByDevice(Integer deviceid); + + public List findPblzByDevice(Integer deviceid); + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addPblzRecord(PgO2 ch4); + public int addPblzRecord(float value, String tm, int deviceid); + + + /******** 氧气浓度报警状态 ********/ + public List findAllSbjz(); + public PgO2Alm findSbjzById(Integer id); + + public List findSbjzByDevice(Integer deviceid); + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addSbjzRecord(PgO2Alm ch4alm); + public int addSbjzRecord(boolean status, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/PgWsDao.java b/src/com/szpg/db/dao/PgWsDao.java index b7b93e2..5411998 100644 --- a/src/com/szpg/db/dao/PgWsDao.java +++ b/src/com/szpg/db/dao/PgWsDao.java @@ -1,35 +1,36 @@ -package com.szpg.db.dao; - -import java.util.List; - -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; - -/** - * 温湿度相关参数读写的数据库接口 - * @author admin - * - */ -public interface PgWsDao { - - /******** 温湿度监测值 ********/ - public List findAllWsdz(); - public PgTemphum findWsdzById(Integer id); - - public List findWsdzByDevice(Integer deviceid); - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdzRecord(PgTemphum wsdz); - public int addWsdzRecord(float temp, float hum, String tm, int deviceid); - - - /******** 温湿度报警状态 ********/ - public List findAllWsdbj(); - public PgTemphumAlm findWsdbjById(Integer id); - - public List findWsdbjByDevice(Integer deviceid); - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); - - public int addWsdbjRecord(PgTemphumAlm wsalm); - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); -} +package com.szpg.db.dao; + +import java.util.List; + +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; + +/** + * 温湿度相关参数读写的数据库接口 + * @author admin + * + */ +public interface PgWsDao { + + /******** 温湿度监测值 ********/ + public List findAllWsdz(); + public PgTemphum findWsdzById(Integer id); + public PgTemphum findLatestWsdzByDevice(Integer deviceid); + + public List findWsdzByDevice(Integer deviceid); + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdzRecord(PgTemphum wsdz); + public int addWsdzRecord(float temp, float hum, String tm, int deviceid); + + + /******** 温湿度报警状态 ********/ + public List findAllWsdbj(); + public PgTemphumAlm findWsdbjById(Integer id); + + public List findWsdbjByDevice(Integer deviceid); + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end); + + public int addWsdbjRecord(PgTemphumAlm wsalm); + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid); +} diff --git a/src/com/szpg/db/dao/impl/PgCODaoImpl.java b/src/com/szpg/db/dao/impl/PgCODaoImpl.java index 169ad92..fc5b539 100644 --- a/src/com/szpg/db/dao/impl/PgCODaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCODaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.data.PgCO; -import com.szpg.db.data.PgCOAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCODaoImpl implements PgCODao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCO findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCO co = new PgCO(); - Object[] item = tempList.get(0); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); - - return co; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCO co = new PgCO(); - Object[] item = tempList.get(i); - - co.setId(((Number) item[0]).intValue()); - co.setCo(Float.parseFloat((String) item[1])); - co.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - co.setLogtime(cal.getTime()); - co.setUptime(cal.getTime()); - - list.add(co); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCO ch4) { - return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO " + - "(CO, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCOAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(0); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); - - return coalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCOAlm coalm = new PgCOAlm(); - Object[] item = tempList.get(i); - - coalm.setId(((Number) item[0]).intValue()); - coalm.setCoalm(Boolean.parseBoolean((String) item[1])); - coalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - coalm.setLogtime(cal.getTime()); - coalm.setUptime(cal.getTime()); - - list.add(coalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCOAlm ch4alm) { - return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CO_ALM " + - "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入一氧化碳报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入一氧化碳报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgCOAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCODaoImpl implements PgCODao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCO findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCO co = new PgCO(); + Object[] item = tempList.get(0); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的一氧化碳监测值成功" + co + "]"); + + return co; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CO, LOGTIME, PGDEVICEID FROM PG_CO WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCO co = new PgCO(); + Object[] item = tempList.get(i); + + co.setId(((Number) item[0]).intValue()); + co.setCo(Float.parseFloat((String) item[1])); + co.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + co.setLogtime(cal.getTime()); + co.setUptime(cal.getTime()); + + list.add(co); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCO ch4) { + return addPblzRecord(ch4.getCo(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO " + + "(CO, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCOAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(0); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询一氧化碳报警状态成功" + coalm + "]"); + + return coalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, COALM, LOGTIME, PGDEVICEID FROM PG_CO_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询一氧化碳报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCOAlm coalm = new PgCOAlm(); + Object[] item = tempList.get(i); + + coalm.setId(((Number) item[0]).intValue()); + coalm.setCoalm(Boolean.parseBoolean((String) item[1])); + coalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + coalm.setLogtime(cal.getTime()); + coalm.setUptime(cal.getTime()); + + list.add(coalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCOAlm ch4alm) { + return addSbjzRecord(ch4alm.getCoalm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CO_ALM " + + "(COALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入一氧化碳报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入一氧化碳报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入一氧化碳报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java index aac45e6..61e9f36 100644 --- a/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgCh4DaoImpl.java @@ -1,502 +1,549 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.data.PgCh4; -import com.szpg.db.data.PgCh4Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgCh4DaoImpl implements PgCh4Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4 ch4 = new PgCh4(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4(Float.parseFloat((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgCh4 ch4) { - return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4 " + - "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4alm = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4alm.setId(((Number) item[0]).intValue()); - ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4alm.setLogtime(cal.getTime()); - ch4alm.setUptime(cal.getTime()); - - list.add(ch4alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgCh4Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(0); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); - - return ch4; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgCh4Alm ch4 = new PgCh4Alm(); - Object[] item = tempList.get(i); - - ch4.setId(((Number) item[0]).intValue()); - ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); - ch4.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ch4.setLogtime(cal.getTime()); - ch4.setUptime(cal.getTime()); - - list.add(ch4); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgCh4Alm ch4alm) { - return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_CH4_ALM " + - "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入甲烷报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入甲烷报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgCh4Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgCh4DaoImpl implements PgCh4Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public PgCh4 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的甲烷监测值成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4, LOGTIME, PGDEVICEID FROM PG_CH4 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4 ch4 = new PgCh4(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4(Float.parseFloat((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgCh4 ch4) { + return addPblzRecord(ch4.getCh4(), ch4.getTmStr(), ch4.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4 " + + "(CH4, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4alm = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4alm.setId(((Number) item[0]).intValue()); + ch4alm.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4alm.setLogtime(cal.getTime()); + ch4alm.setUptime(cal.getTime()); + + list.add(ch4alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgCh4Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(0); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + logger.debug("根据ID查询甲烷报警状态成功" + ch4 + "]"); + + return ch4; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, CH4ALM, LOGTIME, PGDEVICEID FROM PG_CH4_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询甲烷报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgCh4Alm ch4 = new PgCh4Alm(); + Object[] item = tempList.get(i); + + ch4.setId(((Number) item[0]).intValue()); + ch4.setCh4alm(Boolean.parseBoolean((String) item[1])); + ch4.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ch4.setLogtime(cal.getTime()); + ch4.setUptime(cal.getTime()); + + list.add(ch4); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgCh4Alm ch4alm) { + return addSbjzRecord(ch4alm.getCh4alm(), ch4alm.getTmStr(), ch4alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_CH4_ALM " + + "(CH4ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入甲烷报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入甲烷报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入甲烷报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java index c55bed9..32f3994 100644 --- a/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgDeviceDaoImpl.java @@ -1,89 +1,165 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ColumnListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.util.ConnectionManager; - -public class PgDeviceDaoImpl implements PgDeviceDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public String findAcuCodeByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - String partition = tempList.get(0); - - logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); - return partition; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备代码查询所在ACU分区代码异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - - @Override - public Integer findDeviceIdByCode(String code) { - Connection conn = null; - - String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; - Object[] param = new Object[1]; - param[0] = code; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - int id = ((Number) tempList.get(0)).intValue(); - - logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); - return id; - } - else { - return -1; - } - } catch (Exception ex) { - logger.error("根据代码查询设备ID异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return -1; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.commons.dbutils.handlers.ColumnListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgDevice; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.TimeFormat; + +public class PgDeviceDaoImpl implements PgDeviceDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public String findAcuCodeByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT PARTITION FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + String partition = tempList.get(0); + + logger.debug("根据设备代码查询所在ACU分区代码成功[" + partition + "]"); + return partition; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备代码查询所在ACU分区代码异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + + @Override + public Integer findDeviceIdByCode(String code) { + Connection conn = null; + + String queryStr = "SELECT ID FROM PG_DEVICE WHERE ASSETCODE = ?"; + Object[] param = new Object[1]; + param[0] = code; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ColumnListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + int id = ((Number) tempList.get(0)).intValue(); + + logger.debug("根据代码查询设备ID成功[ID=" + id + ", CODE=" + code + "]"); + return id; + } + else { + logger.debug("未找到设备[" + code + "]"); + return -1; + } + } catch (Exception ex) { + logger.error("根据代码查询设备ID异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return -1; + } + + @Override + public List findDeviceByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_DEVICE WHERE ASSETCODE LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgDevice.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询设备资产列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询设备资产列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addGenerlAlarmRecord(PgAlarm alarmRec) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_ALARM " + + "(ALARM_DATE, ALARM_VALUE, ALARMDEVID, ALARMTYPEID) " + + "VALUES (TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?, ?, ?)"; + Object[] params = new Object[4]; + params[0] = TimeFormat.formatTimestamp(alarmRec.getAlarm_date()); + params[1] = alarmRec.getAlarm_value(); + params[2] = alarmRec.getAlarmdevid(); + params[3] = alarmRec.getAlarmtypeid(); + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入通用报警记录成功" + alarmRec); + else + logger.error("插入通用报警记录失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入通用报警记录异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java index c1cd49b..344cd93 100644 --- a/src/com/szpg/db/dao/impl/PgHSDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHSDaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.data.PgSH; -import com.szpg.db.data.PgSHAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgHSDaoImpl implements PgHSDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSH findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(0); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); - - return sh; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSH sh = new PgSH(); - Object[] item = tempList.get(i); - - sh.setId(((Number) item[0]).intValue()); - sh.setSh(Float.parseFloat((String) item[1])); - sh.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - sh.setLogtime(cal.getTime()); - sh.setUptime(cal.getTime()); - - list.add(sh); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgSH sh) { - return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH " + - "(SH, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgSHAlm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(0); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); - - return shalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgSHAlm shalm = new PgSHAlm(); - Object[] item = tempList.get(i); - - shalm.setId(((Number) item[0]).intValue()); - shalm.setShalm(Boolean.parseBoolean((String) item[1])); - shalm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - shalm.setLogtime(cal.getTime()); - shalm.setUptime(cal.getTime()); - - list.add(shalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgSHAlm shalm) { - return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_SH_ALM " + - "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入硫化氢报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入硫化氢报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.data.PgSH; +import com.szpg.db.data.PgSHAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgHSDaoImpl implements PgHSDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSH findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(0); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的硫化氢监测值成功" + sh + "]"); + + return sh; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SH, LOGTIME, PGDEVICEID FROM PG_SH WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSH sh = new PgSH(); + Object[] item = tempList.get(i); + + sh.setId(((Number) item[0]).intValue()); + sh.setSh(Float.parseFloat((String) item[1])); + sh.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + sh.setLogtime(cal.getTime()); + sh.setUptime(cal.getTime()); + + list.add(sh); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgSH sh) { + return addPblzRecord(sh.getSh(), sh.getTmStr(), sh.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH " + + "(SH, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgSHAlm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(0); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询硫化氢报警状态成功" + shalm + "]"); + + return shalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, SHALM, LOGTIME, PGDEVICEID FROM PG_SH_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询硫化氢报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgSHAlm shalm = new PgSHAlm(); + Object[] item = tempList.get(i); + + shalm.setId(((Number) item[0]).intValue()); + shalm.setShalm(Boolean.parseBoolean((String) item[1])); + shalm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + shalm.setLogtime(cal.getTime()); + shalm.setUptime(cal.getTime()); + + list.add(shalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgSHAlm shalm) { + return addSbjzRecord(shalm.getShalm(), shalm.getTmStr(), shalm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_SH_ALM " + + "(SHALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入硫化氢报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入硫化氢报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入硫化氢报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java index 6ebe561..791a4e1 100644 --- a/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgHjsbblDaoImpl.java @@ -1,54 +1,87 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.BeanListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.util.ConnectionManager; - -public class PgHjsbblDaoImpl implements PgHjsbblDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public PgHjsbbl findBlByBh(String blbh) { - Connection conn = null; - - String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; - Object[] param = new Object[1]; - param[0] = blbh; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); - - if (null != list && list.size() == 1) { - logger.debug("根据编号查询变量成功[" + list.size() + "]"); - - return list.get(0); - } else - return null; - } catch (Exception ex) { - logger.error("根据编号查询变量异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - - return null; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.BeanListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.util.ConnectionManager; + +public class PgHjsbblDaoImpl implements PgHjsbblDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public PgHjsbbl findBlByBh(String blbh) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH = ?"; + Object[] param = new Object[1]; + param[0] = blbh; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), param); + + if (null != list && list.size() == 1) { + logger.debug("根据编号查询变量成功[" + list.size() + "]"); + + return list.get(0); + } else + return null; + } catch (Exception ex) { + logger.error("根据编号查询变量异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return null; + } + + @Override + public List findBlByAcu(String acucode) { + Connection conn = null; + + String queryStr = "SELECT * FROM PG_HJSBBL WHERE BLBH LIKE ?"; + Object[] params = new Object[1]; + params[0] = acucode + "%"; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List list = (List) runner.query(conn, queryStr, new BeanListHandler(PgHjsbbl.class), params); + + if (null != list && list.isEmpty() == false) { + logger.debug("根据ACU地址查询环境变量列表成功[" + list.size() + "]"); + + return list; + } else + return null; + } catch (Exception ex) { + logger.error("根据ACU地址查询环境变量列表异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java index 62eb0fd..c046bd1 100644 --- a/src/com/szpg/db/dao/impl/PgO2DaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgO2DaoImpl.java @@ -1,502 +1,548 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.data.PgO2; -import com.szpg.db.data.PgO2Alm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgO2DaoImpl implements PgO2Dao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllPblz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2 findPblzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(0); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); - - return o2; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2 o2 = new PgO2(); - Object[] item = tempList.get(i); - - o2.setId(((Number) item[0]).intValue()); - o2.setO2(Float.parseFloat((String) item[1])); - o2.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2.setLogtime(cal.getTime()); - o2.setUptime(cal.getTime()); - - list.add(o2); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addPblzRecord(PgO2 o2) { - return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); - } - - @Override - public int addPblzRecord(float value, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2 " + - "(O2, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = NumberFormat.format(value, "0.00"); - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllSbjz() { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgO2Alm findSbjzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(0); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); - - return o2alm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgO2Alm o2alm = new PgO2Alm(); - Object[] item = tempList.get(i); - - o2alm.setId(((Number) item[0]).intValue()); - o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); - o2alm.setPgdeviceid(((Number) item[3]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - o2alm.setLogtime(cal.getTime()); - o2alm.setUptime(cal.getTime()); - - list.add(o2alm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addSbjzRecord(PgO2Alm o2alm) { - return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); - } - - @Override - public int addSbjzRecord(boolean status, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_O2_ALM " + - "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[4]; - params[0] = status; - params[1] = tm; - params[2] = tm; - params[3] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); - else - logger.error("插入氧气报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入氧气报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.data.PgO2; +import com.szpg.db.data.PgO2Alm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgO2DaoImpl implements PgO2Dao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllPblz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findPblzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2 findLatestPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(0); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的氧气监测值成功" + o2 + "]"); + + return o2; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的硫化氢监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findPblzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2, LOGTIME, PGDEVICEID FROM PG_O2 WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2 o2 = new PgO2(); + Object[] item = tempList.get(i); + + o2.setId(((Number) item[0]).intValue()); + o2.setO2(Float.parseFloat((String) item[1])); + o2.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2.setLogtime(cal.getTime()); + o2.setUptime(cal.getTime()); + + list.add(o2); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addPblzRecord(PgO2 o2) { + return addPblzRecord(o2.getO2(), o2.getTmStr(), o2.getPgdeviceid()); + } + + @Override + public int addPblzRecord(float value, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2 " + + "(O2, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = NumberFormat.format(value, "0.00"); + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气监测值成功[tm=" + tm + ", value=" + value + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllSbjz() { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgO2Alm findSbjzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(0); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + logger.debug("根据ID查询氧气报警状态成功" + o2alm + "]"); + + return o2alm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findSbjzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, O2ALM, LOGTIME, PGDEVICEID FROM PG_O2_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询氧气报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgO2Alm o2alm = new PgO2Alm(); + Object[] item = tempList.get(i); + + o2alm.setId(((Number) item[0]).intValue()); + o2alm.setO2alm(Boolean.parseBoolean((String) item[1])); + o2alm.setPgdeviceid(((Number) item[3]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[2]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + o2alm.setLogtime(cal.getTime()); + o2alm.setUptime(cal.getTime()); + + list.add(o2alm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addSbjzRecord(PgO2Alm o2alm) { + return addSbjzRecord(o2alm.getO2alm(), o2alm.getTmStr(), o2alm.getPgdeviceid()); + } + + @Override + public int addSbjzRecord(boolean status, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_O2_ALM " + + "(O2ALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[4]; + params[0] = status; + params[1] = tm; + params[2] = tm; + params[3] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入氧气报警状态成功[tm=" + tm + ", status=" + status + ", deviceid=" + deviceid + "]"); + else + logger.error("插入氧气报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入氧气报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java index c3f2d12..a460aa5 100644 --- a/src/com/szpg/db/dao/impl/PgWsDaoImpl.java +++ b/src/com/szpg/db/dao/impl/PgWsDaoImpl.java @@ -1,512 +1,559 @@ -package com.szpg.db.dao.impl; - -import java.sql.Connection; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.dbutils.DbUtils; -import org.apache.commons.dbutils.QueryRunner; -import org.apache.commons.dbutils.handlers.ArrayListHandler; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.data.PgTemphum; -import com.szpg.db.data.PgTemphumAlm; -import com.szpg.db.util.ConnectionManager; -import com.szpg.util.NumberFormat; - -public class PgWsDaoImpl implements PgWsDao { - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public List findAllWsdz() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphum findWsdzById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(0); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); - - return ws; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphum ws = new PgTemphum(); - Object[] item = tempList.get(i); - - ws.setId(((Number) item[0]).intValue()); - ws.setTemp(Float.parseFloat((String) item[1])); - ws.setHum(Float.parseFloat((String) item[2])); - ws.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - ws.setLogtime(cal.getTime()); - ws.setUptime(cal.getTime()); - - list.add(ws); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdzRecord(PgTemphum ws) { - return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); - } - - @Override - public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM " + - "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = NumberFormat.format(temp, "0.00"); - params[1] = NumberFormat.format(hum, "0.00"); - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度监测值失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度监测值异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - - @Override - public List findAllWsdbj() { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("查询所有温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public PgTemphumAlm findWsdbjById(Integer id) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; - Object[] param = new Object[1]; - param[0] = id; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); - - if (null != tempList && tempList.size() == 1) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(0); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); - - return wsalm; - } - else - return null; - } catch (Exception ex) { - logger.error("根据ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDevice(Integer deviceid) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; - Object[] param = new Object[1]; - param[0] = deviceid; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { - Connection conn = null; - - String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; - Object[] params = new Object[3]; - params[0] = deviceid; - params[1] = start; - params[2] = end; - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); - - if (null != tempList && tempList.isEmpty() == false) { - logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); - - List list = new ArrayList(); - for (int i = 0; i < tempList.size(); i++) { - PgTemphumAlm wsalm = new PgTemphumAlm(); - Object[] item = tempList.get(i); - - wsalm.setId(((Number) item[0]).intValue()); - wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); - wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); - wsalm.setPgdeviceid(((Number) item[4]).intValue()); - - long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); - Calendar cal = Calendar.getInstance(); - cal.setTimeInMillis(tmValue); - wsalm.setLogtime(cal.getTime()); - wsalm.setUptime(cal.getTime()); - - list.add(wsalm); - } - return list; - } - else - return null; - } catch (Exception ex) { - logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return null; - } - - @Override - public int addWsdbjRecord(PgTemphumAlm wsalm) { - return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); - } - - @Override - public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { - Connection conn = null; - - String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + - "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + - "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; - Object[] params = new Object[5]; - params[0] = temp; - params[1] = hum; - params[2] = tm; - params[3] = tm; - params[4] = deviceid; - - try { - conn = ConnectionManager.getConnectionFromC3P0(); - conn.setAutoCommit(false); - - QueryRunner runner = new QueryRunner(); - int count = runner.update(conn, insertStr, params); - - if (count > 0) - logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); - else - logger.error("插入温湿度报警状态失败!"); - - return count; - } catch (Exception ex) { - logger.error("插入温湿度报警状态异常", ex); - } finally { - try { - DbUtils.commitAndClose(conn); - } catch (SQLException e) { - e.printStackTrace(); - } - } - return 0; - } - -} +package com.szpg.db.dao.impl; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.dbutils.DbUtils; +import org.apache.commons.dbutils.QueryRunner; +import org.apache.commons.dbutils.handlers.ArrayListHandler; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.data.PgTemphum; +import com.szpg.db.data.PgTemphumAlm; +import com.szpg.db.util.ConnectionManager; +import com.szpg.util.NumberFormat; + +public class PgWsDaoImpl implements PgWsDao { + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + @Override + public List findAllWsdz() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findWsdzById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphum findLatestWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND ROWNUM <= 5 ORDER BY LOGTIME DESC"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.isEmpty() == false) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(0); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + logger.debug("根据设备ID查询最新的温湿度监测值成功" + ws + "]"); + + return ws; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询最新的温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdzByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMP, HUM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度监测值成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphum ws = new PgTemphum(); + Object[] item = tempList.get(i); + + ws.setId(((Number) item[0]).intValue()); + ws.setTemp(Float.parseFloat((String) item[1])); + ws.setHum(Float.parseFloat((String) item[2])); + ws.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + ws.setLogtime(cal.getTime()); + ws.setUptime(cal.getTime()); + + list.add(ws); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdzRecord(PgTemphum ws) { + return addWsdzRecord(ws.getTemp(), ws.getHum(), ws.getTmStr(), ws.getPgdeviceid()); + } + + @Override + public int addWsdzRecord(float temp, float hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM " + + "(TEMP, HUM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = NumberFormat.format(temp, "0.00"); + params[1] = NumberFormat.format(hum, "0.00"); + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度监测值成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度监测值失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度监测值异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + + @Override + public List findAllWsdbj() { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM"; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("查询所有温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("查询所有温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public PgTemphumAlm findWsdbjById(Integer id) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE ID = ?"; + Object[] param = new Object[1]; + param[0] = id; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler(), param); + + if (null != tempList && tempList.size() == 1) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(0); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + logger.debug("根据ID查询温湿度报警状态成功" + wsalm + "]"); + + return wsalm; + } + else + return null; + } catch (Exception ex) { + logger.error("根据ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDevice(Integer deviceid) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ?"; + Object[] param = new Object[1]; + param[0] = deviceid; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public List findWsdbjByDeviceAndTm(Integer deviceid, String start, String end) { + Connection conn = null; + + String queryStr = "SELECT ID, TEMPALM, HUMALM, LOGTIME, PGDEVICEID FROM PG_TEMPHUM_ALM WHERE PGDEVICEID = ? AND LOGTIME >= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS') AND LOGTIME <= TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS')"; + Object[] params = new Object[3]; + params[0] = deviceid; + params[1] = start; + params[2] = end; + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + List tempList = (List) runner.query(conn, queryStr, new ArrayListHandler()); + + if (null != tempList && tempList.isEmpty() == false) { + logger.debug("根据设备ID和时间查询温湿度报警状态成功[" + tempList.size() + "]"); + + List list = new ArrayList(); + for (int i = 0; i < tempList.size(); i++) { + PgTemphumAlm wsalm = new PgTemphumAlm(); + Object[] item = tempList.get(i); + + wsalm.setId(((Number) item[0]).intValue()); + wsalm.setTempalm(Boolean.parseBoolean((String) item[1])); + wsalm.setHumalm(Boolean.parseBoolean((String) item[2])); + wsalm.setPgdeviceid(((Number) item[4]).intValue()); + + long tmValue = ((java.sql.Timestamp) ((oracle.sql.TIMESTAMP) item[3]).toJdbc()).getTime(); + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(tmValue); + wsalm.setLogtime(cal.getTime()); + wsalm.setUptime(cal.getTime()); + + list.add(wsalm); + } + return list; + } + else + return null; + } catch (Exception ex) { + logger.error("根据设备ID和时间查询温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; + } + + @Override + public int addWsdbjRecord(PgTemphumAlm wsalm) { + return addWsdbjRecord(wsalm.getTempalm(), wsalm.getHumalm(), wsalm.getTmStr(), wsalm.getPgdeviceid()); + } + + @Override + public int addWsdbjRecord(boolean temp, boolean hum, String tm, int deviceid) { + Connection conn = null; + + String insertStr = "INSERT INTO PG_TEMPHUM_ALM " + + "(TEMPALM, HUMALM, LOGTIME, UPTIME, PGDEVICEID) " + + "VALUES (?, ?, TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), TO_DATE(?, 'YYYY-MM-DD HH24:MI:SS'), ?)"; + Object[] params = new Object[5]; + params[0] = temp; + params[1] = hum; + params[2] = tm; + params[3] = tm; + params[4] = deviceid; + + try { + conn = ConnectionManager.getConnectionFromC3P0(); + conn.setAutoCommit(false); + + QueryRunner runner = new QueryRunner(); + int count = runner.update(conn, insertStr, params); + + if (count > 0) + logger.debug("插入温湿度报警状态成功[tm=" + tm + ", temp=" + temp + ", hum=" + hum + ", deviceid=" + deviceid + "]"); + else + logger.error("插入温湿度报警状态失败!"); + + return count; + } catch (Exception ex) { + logger.error("插入温湿度报警状态异常", ex); + } finally { + try { + DbUtils.commitAndClose(conn); + } catch (SQLException e) { + e.printStackTrace(); + } + } + return 0; + } + +} diff --git a/src/com/szpg/db/data/PgAlarm.java b/src/com/szpg/db/data/PgAlarm.java new file mode 100644 index 0000000..5b6f2d8 --- /dev/null +++ b/src/com/szpg/db/data/PgAlarm.java @@ -0,0 +1,97 @@ +package com.szpg.db.data; + +import java.util.Date; + +import com.szpg.util.TimeFormat; + +public class PgAlarm implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -7798981942866149656L; + + private Integer id; + private Integer active; + private Date alarm_date; + private String alarm_value; + private String description; + private Integer alarmdevid; + private Integer alarmtypeid; + private Integer userid; + + public static Integer ALARM_TYPE_DEVRUN = 1; + public static Integer ALARM_TYPE_PGRUN = 2; + public static Integer ALARM_TYPE_PGSAF = 3; + public static Integer ALARM_TYPE_INPG = 4; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public Date getAlarm_date() { + return alarm_date; + } + + public void setAlarm_date(Date alarm_date) { + this.alarm_date = alarm_date; + } + + public String getAlarm_value() { + return alarm_value; + } + + public void setAlarm_value(String alarm_value) { + this.alarm_value = alarm_value; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Integer getAlarmdevid() { + return alarmdevid; + } + + public void setAlarmdevid(Integer alarmdevid) { + this.alarmdevid = alarmdevid; + } + + public Integer getAlarmtypeid() { + return alarmtypeid; + } + + public void setAlarmtypeid(Integer alarmtypeid) { + this.alarmtypeid = alarmtypeid; + } + + public Integer getUserid() { + return userid; + } + + public void setUserid(Integer userid) { + this.userid = userid; + } + + @Override + public String toString() { + return "PgAlarm[alarmValue=" + alarm_value + ", alarmDate=" + TimeFormat.formatTimestamp(alarm_date) + ", alarmDevId= " + alarmdevid + "]"; + } + +} diff --git a/src/com/szpg/db/data/PgDevice.java b/src/com/szpg/db/data/PgDevice.java new file mode 100644 index 0000000..eac3c52 --- /dev/null +++ b/src/com/szpg/db/data/PgDevice.java @@ -0,0 +1,151 @@ +package com.szpg.db.data; + +public class PgDevice implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = -1121566071243742342L; + + private Integer id; // ID + private Integer active; // + private String assetbarcode; // + private String assetcode; // + private String assetname; // + private String devcode; // + private String devtype; // + private String ip; // + private Integer isopen; // + private String modbus; // + private String mod; + private String partition; + private String pipegallery; + private String position; + private String road; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getAssetbarcode() { + return assetbarcode; + } + + public void setAssetbarcode(String assetbarcode) { + this.assetbarcode = assetbarcode; + } + + public String getAssetcode() { + return assetcode; + } + + public void setAssetcode(String assetcode) { + this.assetcode = assetcode; + } + + public String getAssetname() { + return assetname; + } + + public void setAssetname(String assetname) { + this.assetname = assetname; + } + + public String getDevcode() { + return devcode; + } + + public void setDevcode(String devcode) { + this.devcode = devcode; + } + + public String getDevtype() { + return devtype; + } + + public void setDevtype(String devtype) { + this.devtype = devtype; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public Integer getIsopen() { + return isopen; + } + + public void setIsopen(Integer isopen) { + this.isopen = isopen; + } + + public String getModbus() { + return modbus; + } + + public void setModbus(String modbus) { + this.modbus = modbus; + } + + public String getMod() { + return mod; + } + + public void setMod(String mod) { + this.mod = mod; + } + + public String getPartition() { + return partition; + } + + public void setPartition(String partition) { + this.partition = partition; + } + + public String getPipegallery() { + return pipegallery; + } + + public void setPipegallery(String pipegallery) { + this.pipegallery = pipegallery; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public String getRoad() { + return road; + } + + public void setRoad(String road) { + this.road = road; + } + + @Override + public String toString() { + return "PgDevice [assetcode=" + assetcode + ", assetname=" + assetname + "]"; + } + +} diff --git a/src/com/szpg/plc/PGDSCServlet.java b/src/com/szpg/plc/PGDSCServlet.java index 590fa16..30362a5 100644 --- a/src/com/szpg/plc/PGDSCServlet.java +++ b/src/com/szpg/plc/PGDSCServlet.java @@ -1,45 +1,172 @@ -package com.szpg.plc; - -import java.util.List; -import java.util.concurrent.ScheduledThreadPoolExecutor; -import java.util.concurrent.TimeUnit; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; - -import com.szpg.db.dao.PgAcuDao; -import com.szpg.db.dao.impl.PgAcuDaoImpl; -import com.szpg.db.data.PgAcu; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.task.ACUSocketCheckTask; - -public class PGDSCServlet extends HttpServlet { - - /** - * - */ - private static final long serialVersionUID = -4422075957571639803L; - - @Override - public void init() throws ServletException { - // 1获取数据库中所有ACU - PgAcuDao acuDao = new PgAcuDaoImpl(); - List acuList = acuDao.findAllACU(); - - // 2遍历ACU列表,获取其IP地址与端口号 - for (PgAcu acu : acuList) { - ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); - - client.setNet(acu.getAcu_net()); - client.setNode(acu.getAcu_node()); - client.setUnit(acu.getAcu_unit()); - - // 3将ACU的信息加入到map中 - ACUClientUtil.getInstance().addClient(client); - - // 4新建线程启动client - new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); - } - } -} +package com.szpg.plc; + +import java.util.List; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.task.ACUSocketCheckTask; +import com.szpg.task.ReadCH4StatusTask; +import com.szpg.task.ReadCH4ValueTask; +import com.szpg.task.ReadCOStatusTask; +import com.szpg.task.ReadCOValueTask; +import com.szpg.task.ReadHSStatusTask; +import com.szpg.task.ReadHSValueTask; +import com.szpg.task.ReadO2StatusTask; +import com.szpg.task.ReadO2ValueTask; +import com.szpg.task.ReadWSStatusTask; +import com.szpg.task.ReadWSValueTask; + +public class PGDSCServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = -4422075957571639803L; + + @Override + public void init() throws ServletException { + // 1获取数据库中所有ACU + PgAcuDao acuDao = new PgAcuDaoImpl(); + List acuList = acuDao.findAllACU(); + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgAcu acu : acuList) { + ACUClient client = new ACUClient(acu.getAcu_host(), Integer.parseInt(acu.getAcu_port())); + + client.setAcucode(acu.getAcu_code()); + client.setNet(acu.getAcu_net()); + client.setNode(acu.getAcu_node()); + client.setUnit(acu.getAcu_unit()); + + // 3将ACU的信息加入到map中 + ACUClientUtil.getInstance().addClient(client); + + // 4新建线程启动client + new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS); + } + + // 3启动查询温湿度的定时任务 + testSendWSCommand(); + testSendWSStatusCommand(); + + // 4启动查询甲烷的定时任务 + testSendCH4Command(); + testSendCH4StatusCommand(); + + // 5启动查询一氧化碳的定时任务 + testSendCOCommand(); + testSendCOStatusCommand(); + + // 6氧气 + testSendO2Command(); + testSendO2StatusCommand(); + + // 7硫化氢 + testSendHSCommand(); + testSendHSStatusCommand(); + } + + /** + * 发送查询温湿度监测值命令 + * + * @param client + */ + private void testSendWSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSValueTask(), 20, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询温湿度报警状态命令 + * @param client + */ + private void testSendWSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadWSStatusTask(), 25, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷监测值命令 + * + * @param client + */ + private void testSendCH4Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4ValueTask(), 10, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询甲烷报警状态命令 + * @param client + */ + private void testSendCH4StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCH4StatusTask(), 15, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳监测值命令 + * + * @param client + */ + private void testSendCOCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOValueTask(), 30, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendCOStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadCOStatusTask(), 35, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询氧气监测值命令 + * + * @param client + */ + private void testSendO2Command() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2ValueTask(), 40, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询一氧化碳报警状态命令 + * @param client + */ + private void testSendO2StatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadO2StatusTask(), 45, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢监测值命令 + * + * @param client + */ + private void testSendHSCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSValueTask(), 50, 600, TimeUnit.SECONDS); + } + + /** + * 发送查询硫化氢报警状态命令 + * @param client + */ + private void testSendHSStatusCommand() { + ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1); + sche.scheduleWithFixedDelay(new ReadHSStatusTask(), 55, 600, TimeUnit.SECONDS); + } +} diff --git a/src/com/szpg/plc/SendBaseServlet.java b/src/com/szpg/plc/SendBaseServlet.java new file mode 100644 index 0000000..d3f98bb --- /dev/null +++ b/src/com/szpg/plc/SendBaseServlet.java @@ -0,0 +1,53 @@ +package com.szpg.plc; + +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgDevice; +import com.szpg.util.HttpRequest; + +public class SendBaseServlet extends HttpServlet { + + /** + * + */ + private static final long serialVersionUID = 4332152300810738268L; + + @Override + public void init() throws ServletException { + // 1根据ACU获取其所有的资产设备Device + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + List deviceList = deviceDao.findDeviceByAcu("YXL.ACU001"); + + System.out.println("开始推送资产数据" + deviceList.size()); + + int count = 0; + + // 2遍历ACU列表,获取其IP地址与端口号 + for (PgDevice device : deviceList) { + // 发送 POST 请求 + // 推送资产表 + StringBuilder sb = new StringBuilder(); + sb.append("tableName=ZZB"); + sb.append("&Ent.ZCBH=").append(device.getAssetcode()); + sb.append("&Ent.ZCTM="); + sb.append("&Ent.ZCMC=").append(device.getAssetname()); + sb.append("&Ent.SBLX=").append(device.getDevtype()); + sb.append("&Ent.SYSM="); + sb.append("&Ent.AZSJ="); + sb.append("&Ent.SFBF=0"); + + String sr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sb.toString()); + System.out.println(sr + " ====> " + count++); + } + + System.out.println("推送资产数据结束" + count); + } +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java index e08c5fc..1f54bb3 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6940879434912360622L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwbj; // 甲烷浓度报警状态 - private List jwldbj; // 甲烷是否联动报警 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4StatusCommandResponse() { - jwbj = new ArrayList(); - jwldbj = new ArrayList(); - } - - public List getJwbj() { - return jwbj; - } - - public void setJwbj(List jwbj) { - this.jwbj = jwbj; - } - - public List getJwldbj() { - return jwldbj; - } - - public void setJwldbj(List jwldbj) { - this.jwldbj = jwldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历甲烷设备列表,将甲烷报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addSbjzRecord(jwbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 - - // 解析甲烷浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 - - getJwbj().add(bjBt == '1' ? true : false); - getJwldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCh4; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCH4StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6940879434912360622L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwbj; // 甲烷浓度报警状态 + private List jwldbj; // 甲烷是否联动报警 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4StatusCommandResponse() { + jwbj = new ArrayList(); + jwldbj = new ArrayList(); + } + + public List getJwbj() { + return jwbj; + } + + public void setJwbj(List jwbj) { + this.jwbj = jwbj; + } + + public List getJwldbj() { + return jwldbj; + } + + public void setJwldbj(List jwldbj) { + this.jwldbj = jwldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历甲烷设备列表,将甲烷报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (jwbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCh4 value = ch4Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCh4(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CHALM.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 甲烷浓度报警状态标志位 + + // 解析甲烷浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 甲烷浓度联动报警使能标志位 + + getJwbj().add(bjBt == '1' ? true : false); + getJwldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java index 5814e01..41d3b22 100644 --- a/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCH4ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCh4Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCh4DaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 8081222348890587881L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List jwnd; //甲烷浓度值 - private List jwldbjz; //甲烷联动报警值 - private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 - - public ReadCH4ValueCommandResponse() { - jwnd = new ArrayList(); - jwldbjz = new ArrayList(); - } - - public List getJwnd() { - return jwnd; - } - - public void setJwnd(List jwnd) { - this.jwnd = jwnd; - } - - public List getJwldbjz() { - return jwldbjz; - } - - public void setJwldbjz(List jwldbjz) { - this.jwldbjz = jwldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将甲烷浓度数据存入数据库 - PgCh4Dao ch4Dao = new PgCh4DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU甲烷监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); - - // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析甲烷浓度监测值以及甲烷浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析甲烷浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 - - // 解析甲烷浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 - - getJwnd().add(value); - getJwldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCh4Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCh4DaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCH4ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 8081222348890587881L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List jwnd; //甲烷浓度值 + private List jwldbjz; //甲烷联动报警值 + private String[] zcList; //甲烷监测的资产列表,从配置文件中获取 + + public ReadCH4ValueCommandResponse() { + jwnd = new ArrayList(); + jwldbjz = new ArrayList(); + } + + public List getJwnd() { + return jwnd; + } + + public void setJwnd(List jwnd) { + this.jwnd = jwnd; + } + + public List getJwldbjz() { + return jwldbjz; + } + + public void setJwldbjz(List jwldbjz) { + this.jwldbjz = jwldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将甲烷浓度数据存入数据库 + PgCh4Dao ch4Dao = new PgCh4DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历甲烷设备列表,将甲烷浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + ch4Dao.addPblzRecord(jwnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder jwsb = new StringBuilder(); + jwsb.append("tableName=HJSBBLZB"); + jwsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + jwsb.append("&Ent.ZCBH=").append(zcbh); + jwsb.append("&Ent.BLZ=").append(jwnd.get(i)); + jwsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String jwsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", jwsb.toString()); + + logger.info(jwsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU甲烷监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CH.START")); + + // 获取目标ACU甲烷相关的资产列表,即甲烷设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CH.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析甲烷浓度监测值以及甲烷浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析甲烷浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //甲烷浓度值 + + // 解析甲烷浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //甲烷报警阈值 + + getJwnd().add(value); + getJwldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java index 5c371c1..f43a269 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 1978575736131174986L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cobj; // 一氧化碳浓度报警状态 - private List coldbj; // 一氧化碳是否联动报警 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOStatusCommandResponse() { - cobj = new ArrayList(); - coldbj = new ArrayList(); - } - - public List getCobj() { - return cobj; - } - - public void setCobj(List cobj) { - this.cobj = cobj; - } - - public List getColdbj() { - return coldbj; - } - - public void setColdbj(List coldbj) { - this.coldbj = coldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳报警状态数据存入数据库 - PgCODao coalmDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coalmDao.addSbjzRecord(cobj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 - - // 解析一氧化碳浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 - - getCobj().add(bjBt == '1' ? true : false); - getColdbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgCO; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadCOStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 1978575736131174986L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cobj; // 一氧化碳浓度报警状态 + private List coldbj; // 一氧化碳是否联动报警 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOStatusCommandResponse() { + cobj = new ArrayList(); + coldbj = new ArrayList(); + } + + public List getCobj() { + return cobj; + } + + public void setCobj(List cobj) { + this.cobj = cobj; + } + + public List getColdbj() { + return coldbj; + } + + public void setColdbj(List coldbj) { + this.coldbj = coldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳报警状态数据存入数据库 + PgCODao coalmDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历一氧化碳设备列表,将一氧化碳报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (cobj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgCO value = coalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getCo(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".COALM.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 一氧化碳浓度报警状态标志位 + + // 解析一氧化碳浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 一氧化碳浓度联动报警使能标志位 + + getCobj().add(bjBt == '1' ? true : false); + getColdbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java index 5f5335f..c9b0d2e 100644 --- a/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadCOValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgCODao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgCODaoImpl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6176747812714170040L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List cond; //一氧化碳浓度值 - private List coldbjz; //一氧化碳联动报警值 - private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 - - public ReadCOValueCommandResponse() { - cond = new ArrayList(); - coldbjz = new ArrayList(); - } - - public List getCond() { - return cond; - } - - public void setCond(List cond) { - this.cond = cond; - } - - public List getColdbjz() { - return coldbjz; - } - - public void setColdbjz(List coldbjz) { - this.coldbjz = coldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将一氧化碳浓度数据存入数据库 - PgCODao coDao = new PgCODaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU一氧化碳监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); - - // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析一氧化碳浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 - - // 解析一氧化碳浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 - - getCond().add(value); - getColdbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgCODao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgCODaoImpl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadCOValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6176747812714170040L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List cond; //一氧化碳浓度值 + private List coldbjz; //一氧化碳联动报警值 + private String[] zcList; //一氧化碳监测的资产列表,从配置文件中获取 + + public ReadCOValueCommandResponse() { + cond = new ArrayList(); + coldbjz = new ArrayList(); + } + + public List getCond() { + return cond; + } + + public void setCond(List cond) { + this.cond = cond; + } + + public List getColdbjz() { + return coldbjz; + } + + public void setColdbjz(List coldbjz) { + this.coldbjz = coldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将一氧化碳浓度数据存入数据库 + PgCODao coDao = new PgCODaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历一氧化碳设备列表,将一氧化碳浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + coDao.addPblzRecord(cond.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder cosb = new StringBuilder(); + cosb.append("tableName=HJSBBLZB"); + cosb.append("&Ent.BLBH=").append(zcbh + ".Value"); + cosb.append("&Ent.ZCBH=").append(zcbh); + cosb.append("&Ent.BLZ=").append(cond.get(i)); + cosb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String cosr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", cosb.toString()); + + logger.info(cosr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU一氧化碳监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".CO.START")); + + // 获取目标ACU一氧化碳相关的资产列表,即一氧化碳设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".CO.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析一氧化碳浓度监测值以及一氧化碳浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析一氧化碳浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //一氧化碳浓度值 + + // 解析一氧化碳浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //一氧化碳报警阈值 + + getCond().add(value); + getColdbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java index 52132c8..392aa1b 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSStatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -6523885113265769167L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsbj; // 硫化氢浓度报警状态 - private List hsldbj; // 硫化氢是否联动报警 - private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 - - public ReadHSStatusCommandResponse() { - hsbj = new ArrayList(); - hsldbj = new ArrayList(); - } - - public List getHsbj() { - return hsbj; - } - - public void setHsbj(List hsbj) { - this.hsbj = hsbj; - } - - public List getHsldbj() { - return hsldbj; - } - - public void setHsldbj(List hsldbj) { - this.hsldbj = hsldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢报警状态数据存入数据库 - PgHSDao hsalmDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将硫化氢报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsalmDao.addSbjzRecord(hsbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 - - // 解析硫化氢浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 - - getHsbj().add(bjBt == '1' ? true : false); - getHsldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgSH; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadHSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -6523885113265769167L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsbj; // 硫化氢浓度报警状态 + private List hsldbj; // 硫化氢是否联动报警 + private String[] zcList; //硫化氢监测的资产列表,从配置文件中获取 + + public ReadHSStatusCommandResponse() { + hsbj = new ArrayList(); + hsldbj = new ArrayList(); + } + + public List getHsbj() { + return hsbj; + } + + public void setHsbj(List hsbj) { + this.hsbj = hsbj; + } + + public List getHsldbj() { + return hsldbj; + } + + public void setHsldbj(List hsldbj) { + this.hsldbj = hsldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢报警状态数据存入数据库 + PgHSDao hsalmDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将硫化氢报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (hsbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgSH value = hsalmDao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getSh(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HSALM.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 硫化氢浓度报警状态标志位 + + // 解析硫化氢浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 硫化氢浓度联动报警使能标志位 + + getHsbj().add(bjBt == '1' ? true : false); + getHsldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java index 16a4b03..ca71081 100644 --- a/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadHSValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHSDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHSDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3864512113984510244L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List hsnd; //硫化氢浓度值 - private List hsldbjz; //硫化氢联动报警值 - private String[] zcList; // 监测设备资产列表,从配置文件中获取 - - public ReadHSValueCommandResponse() { - hsnd = new ArrayList(); - hsldbjz = new ArrayList(); - } - - public List getHsnd() { - return hsnd; - } - - public void setHsnd(List hsnd) { - this.hsnd = hsnd; - } - - public List getHsldbjz() { - return hsldbjz; - } - - public void setHsldbjz(List hsldbjz) { - this.hsldbjz = hsldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将硫化氢浓度数据存入数据库 - PgHSDao hsDao = new PgHSDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历设备列表,将监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU硫化氢监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); - - // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析硫化氢浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 - - // 解析硫化氢浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 - - getHsnd().add(value); - getHsldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHSDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHSDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadHSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3864512113984510244L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List hsnd; //硫化氢浓度值 + private List hsldbjz; //硫化氢联动报警值 + private String[] zcList; // 监测设备资产列表,从配置文件中获取 + + public ReadHSValueCommandResponse() { + hsnd = new ArrayList(); + hsldbjz = new ArrayList(); + } + + public List getHsnd() { + return hsnd; + } + + public void setHsnd(List hsnd) { + this.hsnd = hsnd; + } + + public List getHsldbjz() { + return hsldbjz; + } + + public void setHsldbjz(List hsldbjz) { + this.hsldbjz = hsldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将硫化氢浓度数据存入数据库 + PgHSDao hsDao = new PgHSDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历设备列表,将监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + hsDao.addPblzRecord(hsnd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >=0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder hssb = new StringBuilder(); + hssb.append("tableName=HJSBBLZB"); + hssb.append("&Ent.BLBH=").append(zcbh + ".Value"); + hssb.append("&Ent.ZCBH=").append(zcbh); + hssb.append("&Ent.BLZ=").append(hsnd.get(i)); + hssb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String hssr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", hssb.toString()); + + logger.info(hssr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU硫化氢监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".HS.START")); + + // 获取目标ACU硫化氢相关的资产列表,即硫化氢设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".HS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析硫化氢浓度监测值以及硫化氢浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析硫化氢浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //硫化氢浓度值 + + // 解析硫化氢浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //硫化氢报警阈值 + + getHsnd().add(value); + getHsldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java index 1839ba9..905ab2f 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2StatusCommandResponse.java @@ -1,145 +1,161 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2070206047602742122L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2bj; // 氧气浓度报警状态 - private List o2ldbj; // 氧气是否联动报警 - private String[] zcList; //氧气监测的资产列表,从配置文件中获取 - - public ReadO2StatusCommandResponse() { - o2bj = new ArrayList(); - o2ldbj = new ArrayList(); - } - - public List getO2bj() { - return o2bj; - } - - public void setO2bj(List o2bj) { - this.o2bj = o2bj; - } - - public List getO2ldbj() { - return o2ldbj; - } - - public void setO2ldbj(List o2ldbj) { - this.o2ldbj = o2ldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气报警状态数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将氧气报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addSbjzRecord(o2bj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度报警值 - PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); - if (null == almBlObj) { - continue; - } - - int akszdz = almBlObj.getKszdz(); //开始字地址 - int aoffset = akszdz - start; //与开始字的偏移量 - int abit = almBlObj.getSzw(); //所在位 - - char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 - - // 解析氧气浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); - if (null == enBlObj) { - continue; - } - - int ekszdz = enBlObj.getKszdz(); //开始字地址 - int eoffset = ekszdz - start; //与开始字的偏移量 - int ebit = enBlObj.getSzw(); //所在位 - - char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 - - getO2bj().add(bjBt == '1' ? true : false); - getO2ldbj().add(enBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgO2; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadO2StatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2070206047602742122L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2bj; // 氧气浓度报警状态 + private List o2ldbj; // 氧气是否联动报警 + private String[] zcList; //氧气监测的资产列表,从配置文件中获取 + + public ReadO2StatusCommandResponse() { + o2bj = new ArrayList(); + o2ldbj = new ArrayList(); + } + + public List getO2bj() { + return o2bj; + } + + public void setO2bj(List o2bj) { + this.o2bj = o2bj; + } + + public List getO2ldbj() { + return o2ldbj; + } + + public void setO2ldbj(List o2ldbj) { + this.o2ldbj = o2ldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气报警状态数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将氧气报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (o2bj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgO2 value = o2Dao.findLatestPblzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getO2(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQALM.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度报警值 + PgHjsbbl almBlObj = blDao.findBlByBh(zcbh + ".AH"); + if (null == almBlObj) { + continue; + } + + int akszdz = almBlObj.getKszdz(); //开始字地址 + int aoffset = akszdz - start; //与开始字的偏移量 + int abit = almBlObj.getSzw(); //所在位 + + char bjBt = dataStr.charAt(dataStr.length() - 1 - aoffset * 16 - abit); // 氧气浓度报警状态标志位 + + // 解析氧气浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".EN"); + if (null == enBlObj) { + continue; + } + + int ekszdz = enBlObj.getKszdz(); //开始字地址 + int eoffset = ekszdz - start; //与开始字的偏移量 + int ebit = enBlObj.getSzw(); //所在位 + + char enBt = dataStr.charAt(dataStr.length() - 1 - eoffset * 16 - ebit); // 氧气浓度联动报警使能标志位 + + getO2bj().add(bjBt == '1' ? true : false); + getO2ldbj().add(enBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java index bf1e475..8a31f6e 100644 --- a/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadO2ValueCommandResponse.java @@ -1,153 +1,170 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgO2Dao; -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.impl.PgO2DaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -2816512676498637196L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List o2nd; // 氧气浓度值 - private List o2ldbjz; // 氧气联动报警值 - private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 - - public ReadO2ValueCommandResponse() { - o2nd = new ArrayList(); - o2ldbjz = new ArrayList(); - } - - public List getO2nd() { - return o2nd; - } - - public void setO2nd(List o2nd) { - this.o2nd = o2nd; - } - - public List getO2ldbjz() { - return o2ldbjz; - } - - public void setO2ldbjz(List o2ldbjz) { - this.o2ldbjz = o2ldbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将氧气浓度数据存入数据库 - PgO2Dao o2Dao = new PgO2DaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历氧气设备列表,将氧气浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU氧气监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); - - // 获取目标ACU氧气相关的资产列表,即氧气设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析氧气浓度监测值以及氧气浓度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 解析氧气浓度监测值 - PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); - if (null == valueBlObj) { - continue; - } - - int vkszdz = valueBlObj.getKszdz(); //开始字地址 - int vjszdz = valueBlObj.getJszdz(); //结束字地址 - int vn = vjszdz - (vkszdz - 1); //字数 - int voffset = vkszdz - start; //与开始字的偏移量 - - Bytes valueBytes = new Bytes(); - for (int j = vn; j > 0; j--) { - valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); - } - - float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 - - // 解析氧气浓度报警阈值 - PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); - if (null == thresholdBlObj) { - continue; - } - - int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 - int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 - int tn = tjszdz - (tkszdz - 1); //字数 - int toffset = tkszdz - start; //与开始字的偏移量 - - Bytes thresholdBytes = new Bytes(); - for (int k = tn; k > 0; k--) { - thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); - } - - float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 - - getO2nd().add(value); - getO2ldbjz().add(threshold); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgO2Dao; +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgO2DaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadO2ValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -2816512676498637196L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List o2nd; // 氧气浓度值 + private List o2ldbjz; // 氧气联动报警值 + private String[] zcList; // 氧气监测设备资产列表,从配置文件中获取 + + public ReadO2ValueCommandResponse() { + o2nd = new ArrayList(); + o2ldbjz = new ArrayList(); + } + + public List getO2nd() { + return o2nd; + } + + public void setO2nd(List o2nd) { + this.o2nd = o2nd; + } + + public List getO2ldbjz() { + return o2ldbjz; + } + + public void setO2ldbjz(List o2ldbjz) { + this.o2ldbjz = o2ldbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将氧气浓度数据存入数据库 + PgO2Dao o2Dao = new PgO2DaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历氧气设备列表,将氧气浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + o2Dao.addPblzRecord(o2nd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder yqsb = new StringBuilder(); + yqsb.append("tableName=HJSBBLZB"); + yqsb.append("&Ent.BLBH=").append(zcbh + ".Value"); + yqsb.append("&Ent.ZCBH=").append(zcbh); + yqsb.append("&Ent.BLZ=").append(o2nd.get(i)); + yqsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String yqsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", yqsb.toString()); + + logger.info(yqsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU氧气监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".YQ.START")); + + // 获取目标ACU氧气相关的资产列表,即氧气设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".YQ.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析氧气浓度监测值以及氧气浓度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 解析氧气浓度监测值 + PgHjsbbl valueBlObj = blDao.findBlByBh(zcbh + ".Value"); + if (null == valueBlObj) { + continue; + } + + int vkszdz = valueBlObj.getKszdz(); //开始字地址 + int vjszdz = valueBlObj.getJszdz(); //结束字地址 + int vn = vjszdz - (vkszdz - 1); //字数 + int voffset = vkszdz - start; //与开始字的偏移量 + + Bytes valueBytes = new Bytes(); + for (int j = vn; j > 0; j--) { + valueBytes.append(new byte[] {messageData[(voffset + j - 1) * 2], messageData[(voffset + j - 1) * 2 + 1]}); + } + + float value = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueBytes.toBytes()), 16)); //氧气浓度值 + + // 解析氧气浓度报警阈值 + PgHjsbbl thresholdBlObj = blDao.findBlByBh(zcbh + ".Set"); + if (null == thresholdBlObj) { + continue; + } + + int tkszdz = thresholdBlObj.getKszdz(); //开始字地址 + int tjszdz= thresholdBlObj.getJszdz(); //结束字地址 + int tn = tjszdz - (tkszdz - 1); //字数 + int toffset = tkszdz - start; //与开始字的偏移量 + + Bytes thresholdBytes = new Bytes(); + for (int k = tn; k > 0; k--) { + thresholdBytes.append(new byte[] {messageData[(toffset + k - 1) * 2], messageData[(toffset + k - 1) * 2 + 1]}); + } + + float threshold = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdBytes.toBytes()), 16)); //氧气报警阈值 + + getO2nd().add(value); + getO2ldbjz().add(threshold); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java index fc57b36..ffe1cfa 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSStatusCommandResponse.java @@ -1,191 +1,223 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = -3778608871616106346L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wdbj; // 温度报警状态 - private List sdbj; // 湿度报警状态 - private List wdldbj; // 温度是否联动报警 - private List sdldbj; // 湿度是否联动报警 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSStatusCommandResponse() { - wdbj = new ArrayList(); - sdbj = new ArrayList(); - wdldbj = new ArrayList(); - sdldbj = new ArrayList(); - } - - public List getWdbj() { - return wdbj; - } - - public void setWdbj(List wdbj) { - this.wdbj = wdbj; - } - - public List getSdbj() { - return sdbj; - } - - public void setSdbj(List sdbj) { - this.sdbj = sdbj; - } - - public List getWdldbj() { - return wdldbj; - } - - public void setWdldbj(List wdldbj) { - this.wdldbj = wdldbj; - } - - public List getSdldbj() { - return sdldbj; - } - - public void setSdldbj(List sdldbj) { - this.sdldbj = sdldbj; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度报警状态存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - // 遍历资产列表,将温湿度报警状态存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdbjRecord(wdbj.get(i), sdbj.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - // 将数据转换为字符串 - // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 - String dataStr = ""; - for (int c = 0; c < messageData.length; c = c + 2) { - dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度报警状态 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度报警值 - PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); - if (null == almBlTemObj) { - continue; - } - - int awkszdz = almBlTemObj.getKszdz(); //开始字地址 - int awoffset = awkszdz - start; //与开始字的偏移量 - int awbit = almBlTemObj.getSzw(); //所在位 - - char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 - - // 2解析温度浓度报警联动标志位 - PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); - if (null == enBlObj) { - continue; - } - - int ewkszdz = enBlObj.getKszdz(); //开始字地址 - int ewoffset = ewkszdz - start; //与开始字的偏移量 - int ewbit = enBlObj.getSzw(); //所在位 - - char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 - - // 3解析湿度报警值 - PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); - if (null == almBlWetObj) { - continue; - } - - int askszdz = almBlWetObj.getKszdz(); //开始字地址 - int asoffset = askszdz - start; //与开始字的偏移量 - int asbit = almBlWetObj.getSzw(); //所在位 - - char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 - - // 4解析湿度报警联动标志位 - PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); - if (null == enBlWetObj) { - continue; - } - - int eskszdz = enBlWetObj.getKszdz(); //开始字地址 - int esoffset = eskszdz - start; //与开始字的偏移量 - int esbit = enBlWetObj.getSzw(); //所在位 - - char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 - - getWdbj().add(bjTemBt == '1' ? true : false); - getSdbj().add(bjWetBt == '1' ? true : false); - getWdldbj().add(enTemBt == '1' ? true : false); - getSdldbj().add(enWetBt == '1' ? true : false); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgAlarm; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.db.data.PgTemphum; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; +import com.szpg.util.NumberFormat; + +public class ReadWSStatusCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = -3778608871616106346L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wdbj; // 温度报警状态 + private List sdbj; // 湿度报警状态 + private List wdldbj; // 温度是否联动报警 + private List sdldbj; // 湿度是否联动报警 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSStatusCommandResponse() { + wdbj = new ArrayList(); + sdbj = new ArrayList(); + wdldbj = new ArrayList(); + sdldbj = new ArrayList(); + } + + public List getWdbj() { + return wdbj; + } + + public void setWdbj(List wdbj) { + this.wdbj = wdbj; + } + + public List getSdbj() { + return sdbj; + } + + public void setSdbj(List sdbj) { + this.sdbj = sdbj; + } + + public List getWdldbj() { + return wdldbj; + } + + public void setWdldbj(List wdldbj) { + this.wdldbj = wdldbj; + } + + public List getSdldbj() { + return sdldbj; + } + + public void setSdldbj(List sdldbj) { + this.sdldbj = sdldbj; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度报警状态存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + // 遍历资产列表,将温湿度报警状态存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + if (wdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getTemp(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + + if (sdbj.get(i) == true) { + PgAlarm alarmRec = new PgAlarm(); + alarmRec.setAlarm_date(this.getTime().getTime()); + alarmRec.setAlarmdevid(id); + alarmRec.setAlarmtypeid(PgAlarm.ALARM_TYPE_PGRUN); + + PgTemphum value = wsDao.findLatestWsdzByDevice(id); + if (null != value) { + alarmRec.setAlarm_value(NumberFormat.format(value.getHum(), "0.00")); + } + + deviceDao.addGenerlAlarmRecord(alarmRec); + + // 推送到上级平台 + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + // 将数据转换为字符串 + // 按照高字在前,低字在后;高字节在前,低字节在后的顺序 + String dataStr = ""; + for (int c = 0; c < messageData.length; c = c + 2) { + dataStr = ByteUtil.binToBinString(new byte[] {messageData[c], messageData[c + 1]}) + dataStr; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WSALM.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度报警状态 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度报警值 + PgHjsbbl almBlTemObj = blDao.findBlByBh(zcbh + ".TemAH"); + if (null == almBlTemObj) { + continue; + } + + int awkszdz = almBlTemObj.getKszdz(); //开始字地址 + int awoffset = awkszdz - start; //与开始字的偏移量 + int awbit = almBlTemObj.getSzw(); //所在位 + + char bjTemBt = dataStr.charAt(dataStr.length() - 1 - awoffset * 16 - awbit); // 温度报警状态标志位 + + // 2解析温度浓度报警联动标志位 + PgHjsbbl enBlObj = blDao.findBlByBh(zcbh + ".TemEN"); + if (null == enBlObj) { + continue; + } + + int ewkszdz = enBlObj.getKszdz(); //开始字地址 + int ewoffset = ewkszdz - start; //与开始字的偏移量 + int ewbit = enBlObj.getSzw(); //所在位 + + char enTemBt = dataStr.charAt(dataStr.length() - 1 - ewoffset * 16 - ewbit); // 温度联动报警使能标志位 + + // 3解析湿度报警值 + PgHjsbbl almBlWetObj = blDao.findBlByBh(zcbh + ".WetAH"); + if (null == almBlWetObj) { + continue; + } + + int askszdz = almBlWetObj.getKszdz(); //开始字地址 + int asoffset = askszdz - start; //与开始字的偏移量 + int asbit = almBlWetObj.getSzw(); //所在位 + + char bjWetBt = dataStr.charAt(dataStr.length() - 1 - asoffset * 16 - asbit); // 湿度报警状态标志位 + + // 4解析湿度报警联动标志位 + PgHjsbbl enBlWetObj = blDao.findBlByBh(zcbh + ".WetEN"); + if (null == enBlWetObj) { + continue; + } + + int eskszdz = enBlWetObj.getKszdz(); //开始字地址 + int esoffset = eskszdz - start; //与开始字的偏移量 + int esbit = enBlWetObj.getSzw(); //所在位 + + char enWetBt = dataStr.charAt(dataStr.length() - 1 - esoffset * 16 - esbit); // 温湿度浓度联动报警使能标志位 + + getWdbj().add(bjTemBt == '1' ? true : false); + getSdbj().add(bjWetBt == '1' ? true : false); + getWdldbj().add(enTemBt == '1' ? true : false); + getSdldbj().add(enWetBt == '1' ? true : false); + } + } + +} diff --git a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java index fa63f77..31ff51a 100644 --- a/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java +++ b/src/com/szpg/plc/message/response/read/ReadWSValueCommandResponse.java @@ -1,213 +1,240 @@ -package com.szpg.plc.message.response.read; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.lang3.StringUtils; -import org.apache.log4j.Logger; - -import com.szpg.db.dao.PgDeviceDao; -import com.szpg.db.dao.PgHjsbblDao; -import com.szpg.db.dao.PgWsDao; -import com.szpg.db.dao.impl.PgDeviceDaoImpl; -import com.szpg.db.dao.impl.PgHjsbblDaoImpl; -import com.szpg.db.dao.impl.PgWsDaoImpl; -import com.szpg.db.data.PgHjsbbl; -import com.szpg.plc.message.response.ReadMemoryCommandResponse; -import com.szpg.plc.util.ByteUtil; -import com.szpg.plc.util.Bytes; -import com.szpg.util.Configure; -import com.szpg.util.TimeFormat; - -public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { - - /** - * - */ - private static final long serialVersionUID = 2964733118081941174L; - - private final Logger logger = Logger.getLogger(this.getClass().getName()); - - private List wd; //温度监测值 - private List sd; //湿度监测值 - private List wdbjz; //温度报警阈值 - private List sdbjz; //湿度报警阈值 - private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 - - public ReadWSValueCommandResponse() { - wd = new ArrayList(); - sd = new ArrayList(); - wdbjz = new ArrayList(); - sdbjz = new ArrayList(); - } - - public List getWd() { - return wd; - } - - public void setWd(List wd) { - this.wd = wd; - } - - public List getSd() { - return sd; - } - - public void setSd(List sd) { - this.sd = sd; - } - - public List getWdbjz() { - return wdbjz; - } - - public void setWdbjz(List wdbjz) { - this.wdbjz = wdbjz; - } - - public List getSdbjz() { - return sdbjz; - } - - public void setSdbjz(List sdbjz) { - this.sdbjz = sdbjz; - } - - public String[] getZcList() { - return zcList; - } - - public void setZcList(String[] zcList) { - this.zcList = zcList; - } - - @Override - public void afterAction() { - // 1将温湿度监测值数据存入数据库 - PgWsDao wsDao = new PgWsDaoImpl(); - PgDeviceDao deviceDao = new PgDeviceDaoImpl(); - - if (null != zcList && zcList.length > 0) { - // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - int id = deviceDao.findDeviceIdByCode(zcbh); - if (id > 0) { - wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); - } - } - } - } - - @Override - public void parseData(byte[] messageData) { - // 获取目标ACU的代码 - String acucode = this.getAcucode(); - - // 判断数据的长度是否满足要求 - if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { - logger.error("返回的数据长度与读取的不一致!"); - this.setValid(false); - return; - } - - PgHjsbblDao blDao = new PgHjsbblDaoImpl(); - - // 获取目标ACU温湿度监测值内存区域的起始字地址 - int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); - - // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 - String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); - if (StringUtils.isEmpty(zcListStr) == true) { - this.setValid(false); - return; - } - zcList = zcListStr.split(";"); - - // 解析温湿度监测值以及温湿度报警阈值 - for (int i = 0; i < zcList.length; i++) { - String zcbh = zcList[i]; - - // 1解析温度监测值 - PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); - if (null == valueTemBlObj) { - continue; - } - - int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 - int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 - int vwn = vwjszdz - (vwkszdz - 1); //字数 - int vwoffset = vwkszdz - start; //与开始字的偏移量 - - Bytes valueTemBytes = new Bytes(); - for (int j = vwn; j > 0; j--) { - valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); - } - - float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 - - - // 2解析湿度监测值 - PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); - if (null == valueWetBlObj) { - continue; - } - - int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 - int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 - int vsn = vsjszdz - (vskszdz - 1); //字数 - int vsoffset = vskszdz - start; //与开始字的偏移量 - - Bytes valueWetBytes = new Bytes(); - for (int j = vsn; j > 0; j--) { - valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); - } - - float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 - - // 3解析温度报警阈值 - PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); - if (null == thresholdTemBlObj) { - continue; - } - - int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 - int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 - int twn = twjszdz - (twkszdz - 1); //字数 - int twoffset = twkszdz - start; //与开始字的偏移量 - - Bytes thresholdTemBytes = new Bytes(); - for (int k = twn; k > 0; k--) { - thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); - } - - float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 - - - // 4解析湿度报警阈值 - PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); - if (null == thresholdWetBlObj) { - continue; - } - - int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 - int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 - int tsn = tsjszdz - (tskszdz - 1); //字数 - int tsoffset = tskszdz - start; //与开始字的偏移量 - - Bytes thresholdWetBytes = new Bytes(); - for (int k = tsn; k > 0; k--) { - thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); - } - - float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 - - getWd().add(valueTem); - getSd().add(valueWet); - getWdbjz().add(thresholdTem); - getSdbjz().add(thresholdWet); - } - } - -} +package com.szpg.plc.message.response.read; + +import java.util.ArrayList; +import java.util.Calendar; +import java.util.List; + +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.Logger; + +import com.szpg.db.dao.PgDeviceDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.PgWsDao; +import com.szpg.db.dao.impl.PgDeviceDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.dao.impl.PgWsDaoImpl; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.response.ReadMemoryCommandResponse; +import com.szpg.plc.util.ByteUtil; +import com.szpg.plc.util.Bytes; +import com.szpg.util.Configure; +import com.szpg.util.HttpRequest; +import com.szpg.util.TimeFormat; + +public class ReadWSValueCommandResponse extends ReadMemoryCommandResponse { + + /** + * + */ + private static final long serialVersionUID = 2964733118081941174L; + + private final Logger logger = Logger.getLogger(this.getClass().getName()); + + private List wd; //温度监测值 + private List sd; //湿度监测值 + private List wdbjz; //温度报警阈值 + private List sdbjz; //湿度报警阈值 + private String[] zcList; //温湿度监测的资产列表,从配置文件中获取 + + public ReadWSValueCommandResponse() { + wd = new ArrayList(); + sd = new ArrayList(); + wdbjz = new ArrayList(); + sdbjz = new ArrayList(); + } + + public List getWd() { + return wd; + } + + public void setWd(List wd) { + this.wd = wd; + } + + public List getSd() { + return sd; + } + + public void setSd(List sd) { + this.sd = sd; + } + + public List getWdbjz() { + return wdbjz; + } + + public void setWdbjz(List wdbjz) { + this.wdbjz = wdbjz; + } + + public List getSdbjz() { + return sdbjz; + } + + public void setSdbjz(List sdbjz) { + this.sdbjz = sdbjz; + } + + public String[] getZcList() { + return zcList; + } + + public void setZcList(String[] zcList) { + this.zcList = zcList; + } + + @Override + public void afterAction() { + // 1将温湿度监测值数据存入数据库 + PgWsDao wsDao = new PgWsDaoImpl(); + PgDeviceDao deviceDao = new PgDeviceDaoImpl(); + + if (null != zcList && zcList.length > 0) { + // 遍历温湿度设备列表,将温湿度浓度监测值存入数据库 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + int id = deviceDao.findDeviceIdByCode(zcbh); + if (id > 0) { + wsDao.addWsdzRecord(wd.get(i), sd.get(i), TimeFormat.formatTimestamp(this.getTime().getTime()), id); + + // 推送至上级平台 + // TODO 代码待优化 + if (getTime().get(Calendar.MINUTE) >= 0 || getTime().get(Calendar.MINUTE) < 10) { + StringBuilder wdsb = new StringBuilder(); + wdsb.append("tableName=HJSBBLZB"); + wdsb.append("&Ent.BLBH=").append(zcbh + ".TemValue"); + wdsb.append("&Ent.ZCBH=").append(zcbh); + wdsb.append("&Ent.BLZ=").append(wd.get(i)); + wdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String wdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", wdsb.toString()); + + StringBuilder sdsb = new StringBuilder(); + sdsb.append("tableName=HJSBBLZB"); + sdsb.append("&Ent.BLBH=").append(zcbh + ".WetValue"); + sdsb.append("&Ent.ZCBH=").append(zcbh); + sdsb.append("&Ent.BLZ=").append(sd.get(i)); + sdsb.append("&Ent.SJC=").append(TimeFormat.format(getTime().getTime(), "yyyyMMddHHmmss")); + + String sdsr = HttpRequest.sendPostByHttp("http://10.10.2.19:9056/GLTHXC/api/Common/AddData", sdsb.toString()); + + logger.info(wdsr); + logger.info(sdsr); + } + } + } + } + } + + @Override + public void parseData(byte[] messageData) { + // 获取目标ACU的代码 + String acucode = this.getAcucode(); + + // 判断数据的长度是否满足要求 + if (messageData.length != Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.WORDCOUNT")) * 2) { + logger.error("返回的数据长度与读取的不一致!"); + this.setValid(false); + return; + } + + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + // 获取目标ACU温湿度监测值内存区域的起始字地址 + int start = Integer.parseInt(Configure.getProperty("acubl", acucode + ".WS.START")); + + // 获取目标ACU温湿度相关的资产列表,即温湿度设备列表 + String zcListStr = Configure.getProperty("acubl", acucode + ".WS.ZC.LIST"); + if (StringUtils.isEmpty(zcListStr) == true) { + this.setValid(false); + return; + } + zcList = zcListStr.split(";"); + + // 解析温湿度监测值以及温湿度报警阈值 + for (int i = 0; i < zcList.length; i++) { + String zcbh = zcList[i]; + + // 1解析温度监测值 + PgHjsbbl valueTemBlObj = blDao.findBlByBh(zcbh + ".TemValue"); + if (null == valueTemBlObj) { + continue; + } + + int vwkszdz = valueTemBlObj.getKszdz(); //开始字地址 + int vwjszdz = valueTemBlObj.getJszdz(); //结束字地址 + int vwn = vwjszdz - (vwkszdz - 1); //字数 + int vwoffset = vwkszdz - start; //与开始字的偏移量 + + Bytes valueTemBytes = new Bytes(); + for (int j = vwn; j > 0; j--) { + valueTemBytes.append(new byte[] {messageData[(vwoffset + j - 1) * 2], messageData[(vwoffset + j - 1) * 2 + 1]}); + } + + float valueTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueTemBytes.toBytes()), 16)); //温度监测值 + + + // 2解析湿度监测值 + PgHjsbbl valueWetBlObj = blDao.findBlByBh(zcbh + ".WetValue"); + if (null == valueWetBlObj) { + continue; + } + + int vskszdz = valueWetBlObj.getKszdz(); //开始字地址 + int vsjszdz = valueWetBlObj.getJszdz(); //结束字地址 + int vsn = vsjszdz - (vskszdz - 1); //字数 + int vsoffset = vskszdz - start; //与开始字的偏移量 + + Bytes valueWetBytes = new Bytes(); + for (int j = vsn; j > 0; j--) { + valueWetBytes.append(new byte[] {messageData[(vsoffset + j - 1) * 2], messageData[(vsoffset + j - 1) * 2 + 1]}); + } + + float valueWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(valueWetBytes.toBytes()), 16)); //湿度监测值 + + // 3解析温度报警阈值 + PgHjsbbl thresholdTemBlObj = blDao.findBlByBh(zcbh + ".TemSet"); + if (null == thresholdTemBlObj) { + continue; + } + + int twkszdz = thresholdTemBlObj.getKszdz(); //开始字地址 + int twjszdz= thresholdTemBlObj.getJszdz(); //结束字地址 + int twn = twjszdz - (twkszdz - 1); //字数 + int twoffset = twkszdz - start; //与开始字的偏移量 + + Bytes thresholdTemBytes = new Bytes(); + for (int k = twn; k > 0; k--) { + thresholdTemBytes.append(new byte[] {messageData[(twoffset + k - 1) * 2], messageData[(twoffset + k - 1) * 2 + 1]}); + } + + float thresholdTem = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdTemBytes.toBytes()), 16)); //温度报警阈值 + + + // 4解析湿度报警阈值 + PgHjsbbl thresholdWetBlObj = blDao.findBlByBh(zcbh + ".WetSet"); + if (null == thresholdWetBlObj) { + continue; + } + + int tskszdz = thresholdWetBlObj.getKszdz(); //开始字地址 + int tsjszdz= thresholdWetBlObj.getJszdz(); //结束字地址 + int tsn = tsjszdz - (tskszdz - 1); //字数 + int tsoffset = tskszdz - start; //与开始字的偏移量 + + Bytes thresholdWetBytes = new Bytes(); + for (int k = tsn; k > 0; k--) { + thresholdWetBytes.append(new byte[] {messageData[(tsoffset + k - 1) * 2], messageData[(tsoffset + k - 1) * 2 + 1]}); + } + + float thresholdWet = Float.intBitsToFloat(Integer.parseInt(ByteUtil.binToHexString(thresholdWetBytes.toBytes()), 16)); //湿度报警阈值 + + getWd().add(valueTem); + getSd().add(valueWet); + getWdbjz().add(thresholdTem); + getSdbjz().add(thresholdWet); + } + } + +} diff --git a/src/com/szpg/plc/server/ACUClientHandler.java b/src/com/szpg/plc/server/ACUClientHandler.java index 69a40cc..99d2b32 100644 --- a/src/com/szpg/plc/server/ACUClientHandler.java +++ b/src/com/szpg/plc/server/ACUClientHandler.java @@ -77,7 +77,7 @@ } // 命令解析后处理 - //message.afterAction(); + message.afterAction(); } } } diff --git a/src/com/szpg/rmi/RemoteControlCommandAction.java b/src/com/szpg/rmi/RemoteControlCommandAction.java new file mode 100644 index 0000000..ced2303 --- /dev/null +++ b/src/com/szpg/rmi/RemoteControlCommandAction.java @@ -0,0 +1,1375 @@ +package com.szpg.rmi; + +import java.net.URLEncoder; + +import org.apache.log4j.Logger; +import org.apache.struts2.ServletActionContext; + +import com.opensymphony.xwork2.ActionSupport; +import com.szpg.db.dao.PgAcuCmdDao; +import com.szpg.db.dao.PgAcuDao; +import com.szpg.db.dao.PgHjsbblDao; +import com.szpg.db.dao.impl.PgAcuCmdDaoImpl; +import com.szpg.db.dao.impl.PgAcuDaoImpl; +import com.szpg.db.dao.impl.PgHjsbblDaoImpl; +import com.szpg.db.data.PgAcu; +import com.szpg.db.data.PgAcuCmd; +import com.szpg.db.data.PgHjsbbl; +import com.szpg.plc.message.CommandResponse; +import com.szpg.plc.message.command.write.SetDsRstBitCommand; +import com.szpg.plc.message.command.write.SetFjOffBitCommand; +import com.szpg.plc.message.command.write.SetFjOnBitCommand; +import com.szpg.plc.message.command.write.SetJgUnlockBitCommand; +import com.szpg.plc.message.command.write.SetZmOffBitCommand; +import com.szpg.plc.message.command.write.SetZmOnBitCommand; +import com.szpg.plc.protocol.DTProtocolInterface; +import com.szpg.plc.protocol.ProtocolFactory; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.util.Configure; + +import z.json.JSONObject; + +public class RemoteControlCommandAction extends ActionSupport { + + /** + * + */ + private static final long serialVersionUID = -577795045445769331L; + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private String format; + private String jsoncallback; + + private String zcbh; + + public String getZcbh() { + return zcbh; + } + + public void setZcbh(String zcbh) { + this.zcbh = zcbh; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getJsoncallback() { + return jsoncallback; + } + + public void setJsoncallback(String jsoncallback) { + this.jsoncallback = jsoncallback; + } + + /** + * 远程打开照明 + * @return + * @throws Exception + */ + public String trunOnZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + +// String acucode = deviceDao.findAcuCodeByCode(zcbh); + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetZmOffBitCommand clearOffCmd = new SetZmOffBitCommand(); + clearOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 暂停1秒后发送远程打开照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOnBitCommand setOnCmd = new SetZmOnBitCommand(); + setOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的开灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭照明 + * @return + * @throws Exception + */ + public String turnOffZm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetZmOnBitCommand clearOnCmd = new SetZmOnBitCommand(); + clearOnCmd.setZmon(SetZmOnBitCommand.ZM_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getZmon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送远程关闭照明的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除启动位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetZmOffBitCommand setOffCmd = new SetZmOffBitCommand(); + setOffCmd.setZmoff(SetZmOffBitCommand.ZM_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getZmoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关灯变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程打开排风机 + * @return + * @throws Exception + */ + public String trunOnFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将停止位置0 + SetFjOffBitCommand clearOffCmd = new SetFjOffBitCommand(); + clearOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_DISABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + clearOffCmd.setMessageProducerId(sour); + clearOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + clearOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOffCmd.setBit(bit); + + // 位数 + clearOffCmd.setCount(end - start + 1); + + // 位内容 + clearOffCmd.setValue(new byte[] {(byte) clearOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送启动风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置启动位的命令 + SetFjOnBitCommand setOnCmd = new SetFjOnBitCommand(); + setOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_ENABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + setOnCmd.setMessageProducerId(sour); + setOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOnCmd.setBit(bit); + + // 位数 + setOnCmd.setCount(end - start + 1); + + // 位内容 + setOnCmd.setValue(new byte[] {(byte) setOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的打开风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOnCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOnCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + /** + * 远程关闭排风机 + * @return + * @throws Exception + */ + public String turnOffFj() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 1首先将启动位置0 + SetFjOnBitCommand clearOnCmd = new SetFjOnBitCommand(); + clearOnCmd.setFjon(SetFjOnBitCommand.FJ_ON_DISABLE); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".ON"); + if (null != onBlObj) { + clearOnCmd.setMessageProducerId(sour); + clearOnCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + clearOnCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + clearOnCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + clearOnCmd.setBit(bit); + + // 位数 + clearOnCmd.setCount(end - start + 1); + + // 位内容 + clearOnCmd.setValue(new byte[] {(byte) clearOnCmd.getFjon()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(clearOnCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } + + // 暂停1秒后发送关闭风机的命令 + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + // TODO 阻塞线程被打断,需要处理异常 + // 目前的处理流程为1)记录日志 + logger.error("清除停止位后的阻塞等待线程被打断", e); + } + + // 2 发送设置停止位的命令 + SetFjOffBitCommand setOffCmd = new SetFjOffBitCommand(); + setOffCmd.setFjoff(SetFjOffBitCommand.FJ_OFF_ENABLE); + PgHjsbbl offBlObj = blDao.findBlByBh(zcbh + ".OFF"); + if (null != offBlObj) { + setOffCmd.setMessageProducerId(sour); + setOffCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setOffCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = offBlObj.getKszdz(); + int end = offBlObj.getJszdz(); + int bit = offBlObj.getSzw(); + + // 开始字地址 + setOffCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setOffCmd.setBit(bit); + + // 位数 + setOffCmd.setCount(end - start + 1); + + // 位内容 + setOffCmd.setValue(new byte[] {(byte) setOffCmd.getFjoff()} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setOffCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的关闭风机变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setOffCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setOffCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程解锁井盖 + * @return + * @throws Exception + */ + public String unlockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetJgUnlockBitCommand setUnlockCmd = new SetJgUnlockBitCommand(); + setUnlockCmd.setUnlock(SetJgUnlockBitCommand.JG_UNLOCK); + PgHjsbbl unlockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != unlockBlObj) { + setUnlockCmd.setMessageProducerId(sour); + setUnlockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setUnlockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = unlockBlObj.getKszdz(); + int end = unlockBlObj.getJszdz(); + int bit = unlockBlObj.getSzw(); + + // 开始字地址 + setUnlockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setUnlockCmd.setBit(bit); + + // 位数 + setUnlockCmd.setCount(end - start + 1); + + // 位内容 + setUnlockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_UNLOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setUnlockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的解锁井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setUnlockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setUnlockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 远程锁定井盖 + * @return + * @throws Exception + */ + public String lockJg() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + SetJgUnlockBitCommand setLockCmd = new SetJgUnlockBitCommand(); + setLockCmd.setUnlock(SetJgUnlockBitCommand.JG_LOCK); + PgHjsbbl lockBlObj = blDao.findBlByBh(zcbh + ".Lock"); + if (null != lockBlObj) { + setLockCmd.setMessageProducerId(sour); + setLockCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setLockCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = lockBlObj.getKszdz(); + int end = lockBlObj.getJszdz(); + int bit = lockBlObj.getSzw(); + + // 开始字地址 + setLockCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setLockCmd.setBit(bit); + + // 位数 + setLockCmd.setCount(end - start + 1); + + // 位内容 + setLockCmd.setValue(new byte[] {(byte) SetJgUnlockBitCommand.JG_LOCK} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setLockCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的锁定井盖变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setLockCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setLockCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 清除对射报警 + * @return + * @throws Exception + */ + public String clearDsAlarm() throws Exception { + // 返回结果 + JSONObject jResult = new JSONObject(); + + if (null == zcbh || zcbh.equals("") == true) { + jResult.put("success", false); + jResult.put("code", "1"); + jResult.put("resaon", URLEncoder.encode("资产编号为空", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 查找ACU的信息 + PgAcuDao acuDao = new PgAcuDaoImpl(); + PgHjsbblDao blDao = new PgHjsbblDaoImpl(); + + String acucode = zcbh.substring(0, zcbh.indexOf(".", 6)); + PgAcu acu = acuDao.findACUByCode(acucode); + if (null == acu) { + jResult.put("success", false); + jResult.put("code", "2"); + jResult.put("resaon", URLEncoder.encode("未找到资产对应的PLC主机", "UTF-8")); + + returnToFront(jResult); + return null; + } + + ACUClient client = ACUClientUtil.getInstance().getClients().get(acu.getAcu_host() + ":" + acu.getAcu_port()); + if (null != client) { + // 源地址 + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + + // 目标地址 + String dest = client.getNet() + client.getNode() + client.getUnit(); + + DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol(); + + // 发送设置解锁位的命令 + SetDsRstBitCommand setRstCmd = new SetDsRstBitCommand(); + PgHjsbbl onBlObj = blDao.findBlByBh(zcbh + ".RST"); + if (null != onBlObj) { + setRstCmd.setMessageProducerId(sour); + setRstCmd.setDestinationId(dest); + + // SID在new对象的时候已经生成 + + // 内存区域——按位写 + setRstCmd.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_BIT); + + int start = onBlObj.getKszdz(); + int end = onBlObj.getJszdz(); + int bit = onBlObj.getSzw(); + + // 开始字地址 + setRstCmd.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(start, 2))); + + // 位地址 + setRstCmd.setBit(bit); + + // 位数 + setRstCmd.setCount(end - start + 1); + + // 位内容 + setRstCmd.setValue(new byte[] {(byte) SetDsRstBitCommand.DS_RST} ); + + // 解析命令对象为字节数组 + byte[] content = finspi.messageToBytes(setRstCmd); + + // 通过socket接口发送出去 + ACUClientUtil.getInstance().sendACUCommand(client, content); + } else { + jResult.put("success", false); + jResult.put("code", "4"); + jResult.put("reason", URLEncoder.encode("未找到资产对应的清除对射报警变量", "UTF-8")); + + returnToFront(jResult); + return null; + } + + // 3将命令存入数据库 + PgAcuCmdDao cmdDao = new PgAcuCmdDaoImpl(); + PgAcuCmd cmd = new PgAcuCmd(); + cmd.setCmd_type(setRstCmd.getCommandType()); + cmd.setDest_acu_code(acucode); + cmd.setTm(setRstCmd.getTime().getTime()); + cmdDao.addCmdRecord(cmd); + + // 4阻塞,循环查找响应消息池,找到对应的响应消息 + boolean flag = false; + int times = 0; + CommandResponse response = null; + while (flag == false && times < 240) { + response = ACUClientUtil.getInstance().responsePool.getResponse(cmd.getId()); + + if (null != response && response.equals("") == false) { + flag = true; + } + + times++; + try { + Thread.sleep(500); + } catch (InterruptedException e) { + // 目前的处理流程为1)记录日志;2)将命令置为超时 + logger.error("在响应池中查找命令的响应消息阻塞线程被异常打断", e); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "5"); + jResult.put("reason", URLEncoder.encode("查找命令的响应消息时异常", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + // 5若未超时,将值存入数据库 + if (null != response) { + // 6根据命令类型的不同将监测值存入对应的数据库 + response.afterAction(); + + // 成功返回 + jResult.put("success", true); + jResult.put("code", "0"); + + returnToFront(jResult); + return null; + } else { + // 9超时,将命令的超时标志位置1 + logger.warn("命令超时" + cmd.getId()); + cmdDao.updateCmdRecordTimeout(cmd.getId()); + + jResult.put("success", false); + jResult.put("code", "6"); + jResult.put("reason", URLEncoder.encode("命令发送超时", "UTF-8")); + + returnToFront(jResult); + return null; + } + } else { + jResult.put("success", false); + jResult.put("code", "3"); + jResult.put("resaon", URLEncoder.encode("PLC主机不在线", "UTF-8")); + + returnToFront(jResult); + return null; + } + } + + + /** + * 给前端返回 + * @param jResult + * @throws Exception + */ + private void returnToFront(JSONObject jResult) throws Exception { + // 返回jsonp格式的数据 + if (null != format && format.equalsIgnoreCase("jsonp") == true) { + ServletActionContext.getResponse().getWriter().write(jsoncallback + "(" + jResult.toString() + ");"); + } + + ServletActionContext.getResponse().getWriter().write(jResult.toString()); + } +} diff --git a/src/com/szpg/task/ACUSocketCheckTask.java b/src/com/szpg/task/ACUSocketCheckTask.java index 15550cc..dcadc4d 100644 --- a/src/com/szpg/task/ACUSocketCheckTask.java +++ b/src/com/szpg/task/ACUSocketCheckTask.java @@ -1,30 +1,30 @@ -package com.szpg.task; - -import org.apache.log4j.Logger; - -import com.szpg.plc.server.ACUClient; - -public class ACUSocketCheckTask implements Runnable { - - private Logger logger = Logger.getLogger(this.getClass().getName()); - - private ACUClient client; - - public ACUSocketCheckTask(ACUClient client) { - this.client = client; - } - - @Override - public void run() { - // 判断如果未连接到ACU则启动socket连接 - if (null == client.getChannel() || client.getChannel().isActive() == false) { - try { - client.start(); - } catch (Exception e) { - logger.error("未能连接到" + client); - e.printStackTrace(); - } - } - } - -} +package com.szpg.task; + +import org.apache.log4j.Logger; + +import com.szpg.plc.server.ACUClient; + +public class ACUSocketCheckTask implements Runnable { + + private Logger logger = Logger.getLogger(this.getClass().getName()); + + private ACUClient client; + + public ACUSocketCheckTask(ACUClient client) { + this.client = client; + } + + @Override + public void run() { + // 判断如果未连接到ACU则启动socket连接 + if (null == client.getChannel() || client.getChannel().isActive() == false) { + try { + client.start(); + } catch (Exception e) { + logger.error("未能连接到" + client); + //e.printStackTrace(); + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4StatusTask.java b/src/com/szpg/task/ReadCH4StatusTask.java index 841b971..f9dbb55 100644 --- a/src/com/szpg/task/ReadCH4StatusTask.java +++ b/src/com/szpg/task/ReadCH4StatusTask.java @@ -1,51 +1,55 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCH4StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCH4StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); - - // 调用服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCH4StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCH4StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CHALM.WORDCOUNT"))); + + // 调用服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCH4ValueTask.java b/src/com/szpg/task/ReadCH4ValueTask.java index 0c0875d..587b2bf 100644 --- a/src/com/szpg/task/ReadCH4ValueTask.java +++ b/src/com/szpg/task/ReadCH4ValueTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCH4ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCH4ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCH4ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCH4ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCH4VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CH.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOStatusTask.java b/src/com/szpg/task/ReadCOStatusTask.java index a2cd0d7..51bae7f 100644 --- a/src/com/szpg/task/ReadCOStatusTask.java +++ b/src/com/szpg/task/ReadCOStatusTask.java @@ -1,50 +1,54 @@ -package com.szpg.task; - -import java.util.Calendar; -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadCOStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadCOStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - command.setTime(Calendar.getInstance()); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Calendar; +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadCOStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadCOStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + command.setTime(Calendar.getInstance()); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".COALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadCOValueTask.java b/src/com/szpg/task/ReadCOValueTask.java index 35d8cee..ad7a9ae 100644 --- a/src/com/szpg/task/ReadCOValueTask.java +++ b/src/com/szpg/task/ReadCOValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadCOValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadCOValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadCOValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadCOValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READCOVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".CO.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSStatusTask.java b/src/com/szpg/task/ReadHSStatusTask.java index 15a9e82..d31b178 100644 --- a/src/com/szpg/task/ReadHSStatusTask.java +++ b/src/com/szpg/task/ReadHSStatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadHSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadHSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadHSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadHSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadHSValueTask.java b/src/com/szpg/task/ReadHSValueTask.java index 5881156..0fd4530 100644 --- a/src/com/szpg/task/ReadHSValueTask.java +++ b/src/com/szpg/task/ReadHSValueTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadHSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadHSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadHSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadHSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READHSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".HS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadO2StatusTask.java b/src/com/szpg/task/ReadO2StatusTask.java index cf68811..860b10f 100644 --- a/src/com/szpg/task/ReadO2StatusTask.java +++ b/src/com/szpg/task/ReadO2StatusTask.java @@ -1,48 +1,52 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadO2StatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadO2StatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadO2StatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadO2StatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2STATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadO2ValueTask.java b/src/com/szpg/task/ReadO2ValueTask.java index 5e2e21f..37693db 100644 --- a/src/com/szpg/task/ReadO2ValueTask.java +++ b/src/com/szpg/task/ReadO2ValueTask.java @@ -1,49 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadO2ValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadO2ValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadO2ValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadO2ValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READO2VALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".YQ.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } + +} diff --git a/src/com/szpg/task/ReadWSStatusTask.java b/src/com/szpg/task/ReadWSStatusTask.java index bfa6809..4328426 100644 --- a/src/com/szpg/task/ReadWSStatusTask.java +++ b/src/com/szpg/task/ReadWSStatusTask.java @@ -1,47 +1,51 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorStatusService; -import com.szpg.util.Configure; - -public class ReadWSStatusTask implements Runnable { - - private ReadSensorStatusService service; - - public ReadWSStatusTask() { - service = new ReadSensorStatusService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); - - service.executeService(client, (ReadMemoryCommand) command); - } - } -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorStatusService; +import com.szpg.util.Configure; + +public class ReadWSStatusTask implements Runnable { + + private ReadSensorStatusService service; + + public ReadWSStatusTask() { + service = new ReadSensorStatusService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSSTATUS); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WSALM.WORDCOUNT"))); + + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/task/ReadWSValueTask.java b/src/com/szpg/task/ReadWSValueTask.java index a354e7a..3109c56 100644 --- a/src/com/szpg/task/ReadWSValueTask.java +++ b/src/com/szpg/task/ReadWSValueTask.java @@ -1,50 +1,53 @@ -package com.szpg.task; - -import java.util.Map; - -import com.szpg.plc.message.AppMessageConstants; -import com.szpg.plc.message.command.ReadMemoryCommand; -import com.szpg.plc.protocol.fins.FINSConstants; -import com.szpg.plc.server.ACUClient; -import com.szpg.plc.server.ACUClientUtil; -import com.szpg.plc.util.ByteUtil; -import com.szpg.service.ReadSensorValueService; -import com.szpg.util.Configure; - -public class ReadWSValueTask implements Runnable { - - private ReadSensorValueService service; - - public ReadWSValueTask() { - service = new ReadSensorValueService(); - } - - @Override - public void run() { - // 查找所有的client - Map clients = ACUClientUtil.getInstance().getClients(); - - for (String key : clients.keySet()) { - ACUClient client = clients.get(key); - - // 构建命令对象 - ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); - String sour = Configure.getProperty("sys", "LOCALHOST.NET") + - Configure.getProperty("sys", "LOCALHOST.NODE") + - Configure.getProperty("sys", "LOCALHOST.UNIT"); - command.setMessageProducerId(sour); - - String dest = client.getNet() + client.getNode() + client.getUnit(); - command.setDestinationId(dest); - - command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); - - command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); - command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); - - // 调用服务过程执行命令发送服务 - service.executeService(client, (ReadMemoryCommand) command); - } - } - -} +package com.szpg.task; + +import java.util.Map; + +import com.szpg.plc.message.AppMessageConstants; +import com.szpg.plc.message.command.ReadMemoryCommand; +import com.szpg.plc.protocol.fins.FINSConstants; +import com.szpg.plc.server.ACUClient; +import com.szpg.plc.server.ACUClientUtil; +import com.szpg.plc.util.ByteUtil; +import com.szpg.service.ReadSensorValueService; +import com.szpg.util.Configure; + +public class ReadWSValueTask implements Runnable { + + private ReadSensorValueService service; + + public ReadWSValueTask() { + service = new ReadSensorValueService(); + } + + @Override + public void run() { + // 查找所有的client + Map clients = ACUClientUtil.getInstance().getClients(); + for (String key : clients.keySet()) { + ACUClient client = clients.get(key); + + // 构建命令对象 + ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READWSVALUE); + String sour = Configure.getProperty("sys", "LOCALHOST.NET") + + Configure.getProperty("sys", "LOCALHOST.NODE") + + Configure.getProperty("sys", "LOCALHOST.UNIT"); + command.setMessageProducerId(sour); + + String dest = client.getNet() + client.getNode() + client.getUnit(); + + command.setDestinationId(dest); + + command.setMemoryArea(FINSConstants.MEMORY_DM_AREA); + + try { + command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.START")), 2)) + "00"); + command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".WS.WORDCOUNT"))); + + // 调用服务过程执行命令发送服务 + service.executeService(client, (ReadMemoryCommand) command); + } catch (Exception ex) { + continue; + } + } + } +} diff --git a/src/com/szpg/util/HttpRequest.java b/src/com/szpg/util/HttpRequest.java new file mode 100644 index 0000000..3f86904 --- /dev/null +++ b/src/com/szpg/util/HttpRequest.java @@ -0,0 +1,162 @@ +package com.szpg.util; + +import java.io.BufferedReader; +import java.io.DataOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLConnection; +import java.util.List; +import java.util.Map; + +public class HttpRequest { + /** + * 向指定URL发送GET方法的请求 + * + * @param url 发送请求的URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输出流、输入流 + finally { + try { + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + return result; + } + + public static String sendPostByHttp(String url, String param) { + String result = ""; + try { + // 建立连接 + URL realUrl = new URL(url); + HttpURLConnection httpConn = (HttpURLConnection) realUrl.openConnection(); + // 设置参数 + httpConn.setDoOutput(true); // 需要输出 + httpConn.setDoInput(true); // 需要输入 + httpConn.setUseCaches(false); // 不允许缓存 + httpConn.setRequestMethod("POST"); // 设置POST方式连接 + // 设置请求属性 + httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; charset=utf-8"); + httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 + httpConn.setRequestProperty("Charset", "UTF-8"); + + // 连接,也可以不用明文connect,使用下面的httpConn.getOutputStream()会自动connect + httpConn.connect(); + // 建立输入流,向指向的URL传入参数 + DataOutputStream dos = new DataOutputStream(httpConn.getOutputStream()); + dos.write(param.getBytes("UTF-8")); + dos.flush(); + dos.close(); + + // 获得响应状态 + int resultCode = httpConn.getResponseCode(); + if (HttpURLConnection.HTTP_OK == resultCode) { + StringBuffer sb = new StringBuffer(); + String readLine = new String(); + BufferedReader responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "UTF-8")); + while ((readLine = responseReader.readLine()) != null) { + sb.append(readLine).append("\n"); + } + responseReader.close(); + result = sb.toString(); + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + + return result; + } +} diff --git a/src/struts.xml b/src/struts.xml new file mode 100644 index 0000000..699bbda --- /dev/null +++ b/src/struts.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/src/sys.properties b/src/sys.properties index 1a4ecb3..a1d38c6 100644 --- a/src/sys.properties +++ b/src/sys.properties @@ -1,14 +1,14 @@ -#\u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570 -DB.USERNAME = szpg -DB.PASSWORD = szpg -DB.HOST = 192.168.0.203 -DB.PORT = 1521 -DB.SERVICE = eydb2 - -#\u672c\u673aIP\u5730\u5740 -LOCALHOST.NET = 00 -LOCALHOST.NODE = 6B -LOCALHOST.UNIT = 00 - -#\u5b9a\u671f\u6e05\u7406\u6570\u636e\u5e93\u4e2d\u8d85\u65f6\u7684\u547d\u4ee4 +#\u6570\u636e\u5e93\u8fde\u63a5\u53c2\u6570 +DB.USERNAME = szpg +DB.PASSWORD = szpg +DB.HOST = localhost +DB.PORT = 1521 +DB.SERVICE = orcl + +#\u672c\u673aIP\u5730\u5740 +LOCALHOST.NET = 00 +LOCALHOST.NODE = 67 +LOCALHOST.UNIT = 00 + +#\u5b9a\u671f\u6e05\u7406\u6570\u636e\u5e93\u4e2d\u8d85\u65f6\u7684\u547d\u4ee4 MESSAGEPOOL.REFRESH_TIME = 15 \ No newline at end of file